clk: at91: rework main clk implementation

AT91 main clk a clk multiplexer and not a simple fixed rate clk as currently
implemented.

In some SoCs (sam9x5, sama5, sam9g45 families) this multiplexer can
choose among 2 sources: an internal RC oscillator circuit and an oscillator
using an external crystal.

In other Socs (sam9260, rm9200 families) the multiplexer source is
hardcoded to the external crystal oscillator.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
clk: at91: update main clk documentation

Update main clk documentation to match main clk implementation rework.

Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
clk: at91: add slow clks driver

AT91 slow clk is a clk multiplexer.

In some SoCs (sam9x5, sama5, sam9g45 families) this multiplexer can
choose among 2 sources: an internal RC oscillator circuit and an oscillator
using an external crystal.

In other Socs (sam9260 family) the multiplexer source is hardcoded with
the OSCSEL signal.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
clk: at91: add slow clk documentation

Add slow clk, and slow oscillators documentation.

Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
ARM: at91/dt: move sama5d3 SoC to the new main/slow clk model

Replace the old main and clk definitions (fixed rate clk) by the new main and
slow clk subtree definition (ck = mux(rc_osc, osc)).

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
ARM: at91/dt: add xtal frequencies to sama5d3xcm boards

Define crystal frequencies of sama5d3xcm boards.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
ARM: at91/dt: add xtal frequencies to sama5d3 xplained board

Define crystal properties of sama5d3 xplained board.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
ARM: at91/dt: move at91sam9261 SoC to the new main clock model

Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
Acked-by: Jean-Jacques HIBLOT <jjhiblot@traphandler.com>
ARM: at91/dt: define main xtal frequency of the at91sam9261ek board

Define at91sam9261ek main crystal frequency.

Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
Acked-by: Jean-Jacques HIBLOT <jjhiblot@traphandler.com>
ARM: at91/dt: move at91sam9rl SoC to the new slow/main clock models

Move at91sam9rl SoC to the new main/slow clock model.

Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
ARM: at91/dt: define sam9rlek crystal frequencies

Define at91sam9rlek crystal frequencies.

Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
ARM: at91: prepare common clk transition for sam9n12 SoC

This patch encloses sam9n12 old clk registration in
"#if defined(CONFIG_OLD_CLK_AT91) #endif" sections.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Tested-by: Bo Shen <voice.shen@atmel.com>
ARM: at91/dt: define sam9n12 clocks

Define sam9n12 clocks and make use of them in peripheral definitions.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Tested-by: Bo Shen <voice.shen@atmel.com>
ARM: at91/dt: define sam9n12ek crystal frequencies

Define sam9n12ek's main and slow crystal frequencies.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Tested-by: Bo Shen <voice.shen@atmel.com>
ARM: at91: move sam9n12 SoC to the CCF

This patch removes the selection of AT91_USE_OLD_CLK when selecting
sam9n12 SoC support. This will automatically enable COMMON_CLK_AT91 option
and add support for at91 common clk implementation.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Tested-by: Bo Shen <voice.shen@atmel.com>
ARM: at91: prepare common clk transition for sam9x5 SoCs

This patch encloses sam9x5 old clk registration in
"#if defined(CONFIG_OLD_CLK_AT91) #endif" sections.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
ARM: at91/dt: define sam9x5 clocks

Define sam9x5 clocks in sam9x5 dt files and make use of them in peripheral
definitions.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
ARM: at91/dt: define sam9x5ek's crystal frequencies

Define sam9x5ek's main and slow crystal frequencies.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
ARM: at91: move sam9x5 SoCs to the CCF

This patch removes the selection of AT91_USE_OLD_CLK when selecting
sam9x5 SoCs support. This will automatically enable COMMON_CLK_AT91 option
and add support for at91 common clk implementation.

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>