[PATCH] clk: at91: add PMC sama5d2 support
Boris Brezillon
boris.brezillon at free-electrons.com
Tue Jul 28 01:51:44 PDT 2015
On Thu, 18 Jun 2015 14:43:29 +0200
Nicolas Ferre <nicolas.ferre at atmel.com> wrote:
> Add support for the new sama5d2 SoC and adapt capabilities.
>
> Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
Acked-by: Boris Brezillon <boris.brezillon at free-electrons.com>
> ---
> drivers/clk/at91/pmc.c | 15 +++++++++++++++
> include/dt-bindings/clock/at91.h | 1 +
> include/linux/clk/at91_pmc.h | 1 +
> 3 files changed, 17 insertions(+)
>
> diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
> index bed2ce6b3cb9..3ac059678486 100644
> --- a/drivers/clk/at91/pmc.c
> +++ b/drivers/clk/at91/pmc.c
> @@ -207,6 +207,14 @@ static const struct at91_pmc_caps at91sam9x5_caps = {
> AT91_PMC_MOSCRCS | AT91_PMC_CFDEV,
> };
>
> +static const struct at91_pmc_caps sama5d2_caps = {
> + .available_irqs = AT91_PMC_MOSCS | AT91_PMC_LOCKA | AT91_PMC_MCKRDY |
> + AT91_PMC_LOCKU | AT91_PMC_PCK0RDY |
> + AT91_PMC_PCK1RDY | AT91_PMC_PCK2RDY |
> + AT91_PMC_MOSCSELS | AT91_PMC_MOSCRCS |
> + AT91_PMC_CFDEV | AT91_PMC_GCKRDY,
> +};
> +
> static const struct at91_pmc_caps sama5d3_caps = {
> .available_irqs = AT91_PMC_MOSCS | AT91_PMC_LOCKA | AT91_PMC_MCKRDY |
> AT91_PMC_LOCKU | AT91_PMC_PCK0RDY |
> @@ -443,6 +451,13 @@ static void __init of_at91sam9x5_pmc_setup(struct device_node *np)
> CLK_OF_DECLARE(at91sam9x5_clk_pmc, "atmel,at91sam9x5-pmc",
> of_at91sam9x5_pmc_setup);
>
> +static void __init of_sama5d2_pmc_setup(struct device_node *np)
> +{
> + of_at91_pmc_setup(np, &sama5d2_caps);
> +}
> +CLK_OF_DECLARE(sama5d2_clk_pmc, "atmel,sama5d2-pmc",
> + of_sama5d2_pmc_setup);
> +
> static void __init of_sama5d3_pmc_setup(struct device_node *np)
> {
> of_at91_pmc_setup(np, &sama5d3_caps);
> diff --git a/include/dt-bindings/clock/at91.h b/include/dt-bindings/clock/at91.h
> index 0b4cb999a3f7..ab3ee241d10c 100644
> --- a/include/dt-bindings/clock/at91.h
> +++ b/include/dt-bindings/clock/at91.h
> @@ -18,5 +18,6 @@
> #define AT91_PMC_MOSCSELS 16 /* Main Oscillator Selection */
> #define AT91_PMC_MOSCRCS 17 /* Main On-Chip RC */
> #define AT91_PMC_CFDEV 18 /* Clock Failure Detector Event */
> +#define AT91_PMC_GCKRDY 24 /* Generated Clocks */
>
> #endif
> diff --git a/include/linux/clk/at91_pmc.h b/include/linux/clk/at91_pmc.h
> index ae61860e6892..1e6932222e11 100644
> --- a/include/linux/clk/at91_pmc.h
> +++ b/include/linux/clk/at91_pmc.h
> @@ -164,6 +164,7 @@ extern void __iomem *at91_pmc_base;
> #define AT91_PMC_MOSCSELS (1 << 16) /* Main Oscillator Selection [some SAM9] */
> #define AT91_PMC_MOSCRCS (1 << 17) /* Main On-Chip RC [some SAM9] */
> #define AT91_PMC_CFDEV (1 << 18) /* Clock Failure Detector Event [some SAM9] */
> +#define AT91_PMC_GCKRDY (1 << 24) /* Generated Clocks */
> #define AT91_PMC_IMR 0x6c /* Interrupt Mask Register */
>
> #define AT91_PMC_PLLICPR 0x80 /* PLL Charge Pump Current Register */
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
More information about the linux-arm-kernel
mailing list