diff mbox

[4/4] clk: pxa: add missing pxa27x clocks for Irda and sa1100-rtc

Message ID 1419688528-760-5-git-send-email-robert.jarzmik@free.fr (mailing list archive)
State New, archived
Headers show

Commit Message

Robert Jarzmik Dec. 27, 2014, 1:55 p.m. UTC
Add 2 clocks which were erronously forgotten by the clock framework
port, namely :
 - sa1100-rtc
 - irda for pxa2xx-ir:UARTCLK

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
 drivers/clk/pxa/clk-pxa27x.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

Comments

Mike Turquette Jan. 12, 2015, 11:52 p.m. UTC | #1
Quoting Robert Jarzmik (2014-12-27 05:55:28)
> Add 2 clocks which were erronously forgotten by the clock framework
> port, namely :
>  - sa1100-rtc
>  - irda for pxa2xx-ir:UARTCLK
> 
> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>

Acked-by: Michael Turquette <mturquette@linaro.org>

> ---
>  drivers/clk/pxa/clk-pxa27x.c | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
> index 2b8343a..9a31b77 100644
> --- a/drivers/clk/pxa/clk-pxa27x.c
> +++ b/drivers/clk/pxa/clk-pxa27x.c
> @@ -353,6 +353,34 @@ static u8 clk_pxa27x_memory_get_parent(struct clk_hw *hw)
>  PARENTS(clk_pxa27x_memory) = { "osc_13mhz", "system_bus", "run" };
>  MUX_RO_RATE_RO_OPS(clk_pxa27x_memory, "memory");
>  
> +#define DUMMY_CLK(_con_id, _dev_id, _parent) \
> +       { .con_id = _con_id, .dev_id = _dev_id, .parent = _parent }
> +struct dummy_clk {
> +       const char *con_id;
> +       const char *dev_id;
> +       const char *parent;
> +};
> +static struct dummy_clk dummy_clks[] __initdata = {
> +       DUMMY_CLK(NULL, "pxa27x-gpio", "osc_32_768khz"),
> +       DUMMY_CLK(NULL, "sa1100-rtc", "osc_32_768khz"),
> +       DUMMY_CLK("UARTCLK", "pxa2xx-ir", "STUART"),
> +};
> +
> +static void __init pxa27x_dummy_clocks_init(void)
> +{
> +       struct clk *clk;
> +       struct dummy_clk *d;
> +       const char *name;
> +       int i;
> +
> +       for (i = 0; i < ARRAY_SIZE(dummy_clks); i++) {
> +               d = &dummy_clks[i];
> +               name = d->dev_id ? d->dev_id : d->con_id;
> +               clk = clk_register_fixed_factor(NULL, name, d->parent, 0, 1, 1);
> +               clk_register_clkdev(clk, d->con_id, d->dev_id);
> +       }
> +}
> +
>  static void __init pxa27x_base_clocks_init(void)
>  {
>         pxa27x_register_plls();
> @@ -365,6 +393,7 @@ static void __init pxa27x_base_clocks_init(void)
>  int __init pxa27x_clocks_init(void)
>  {
>         pxa27x_base_clocks_init();
> +       pxa27x_dummy_clocks_init();
>         return clk_pxa_cken_init(pxa27x_clocks, ARRAY_SIZE(pxa27x_clocks));
>  }
>  
> -- 
> 2.1.0
>
Robert Jarzmik Jan. 16, 2015, 12:42 p.m. UTC | #2
Mike Turquette <mturquette@linaro.org> writes:

> Quoting Robert Jarzmik (2014-12-27 05:55:28)
>> Add 2 clocks which were erronously forgotten by the clock framework
>> port, namely :
>>  - sa1100-rtc
>>  - irda for pxa2xx-ir:UARTCLK
>> 
>> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>
> Acked-by: Michael Turquette <mturquette@linaro.org>

Thanks for the review and the ack Michael, I'll push that in pxa/for-next.

Cheers.

--
Robert
diff mbox

Patch

diff --git a/drivers/clk/pxa/clk-pxa27x.c b/drivers/clk/pxa/clk-pxa27x.c
index 2b8343a..9a31b77 100644
--- a/drivers/clk/pxa/clk-pxa27x.c
+++ b/drivers/clk/pxa/clk-pxa27x.c
@@ -353,6 +353,34 @@  static u8 clk_pxa27x_memory_get_parent(struct clk_hw *hw)
 PARENTS(clk_pxa27x_memory) = { "osc_13mhz", "system_bus", "run" };
 MUX_RO_RATE_RO_OPS(clk_pxa27x_memory, "memory");
 
+#define DUMMY_CLK(_con_id, _dev_id, _parent) \
+	{ .con_id = _con_id, .dev_id = _dev_id, .parent = _parent }
+struct dummy_clk {
+	const char *con_id;
+	const char *dev_id;
+	const char *parent;
+};
+static struct dummy_clk dummy_clks[] __initdata = {
+	DUMMY_CLK(NULL, "pxa27x-gpio", "osc_32_768khz"),
+	DUMMY_CLK(NULL, "sa1100-rtc", "osc_32_768khz"),
+	DUMMY_CLK("UARTCLK", "pxa2xx-ir", "STUART"),
+};
+
+static void __init pxa27x_dummy_clocks_init(void)
+{
+	struct clk *clk;
+	struct dummy_clk *d;
+	const char *name;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(dummy_clks); i++) {
+		d = &dummy_clks[i];
+		name = d->dev_id ? d->dev_id : d->con_id;
+		clk = clk_register_fixed_factor(NULL, name, d->parent, 0, 1, 1);
+		clk_register_clkdev(clk, d->con_id, d->dev_id);
+	}
+}
+
 static void __init pxa27x_base_clocks_init(void)
 {
 	pxa27x_register_plls();
@@ -365,6 +393,7 @@  static void __init pxa27x_base_clocks_init(void)
 int __init pxa27x_clocks_init(void)
 {
 	pxa27x_base_clocks_init();
+	pxa27x_dummy_clocks_init();
 	return clk_pxa_cken_init(pxa27x_clocks, ARRAY_SIZE(pxa27x_clocks));
 }