[PATCH] at91/usb: always provide all the clocks

ABRAHAM, KISHON VIJAY kishon at ti.com
Tue Aug 30 06:48:52 EDT 2011


On Tue, Aug 30, 2011 at 6:59 AM, Jean-Christophe PLAGNIOL-VILLARD
<plagnioj at jcrosoft.com> wrote:
> drop the cpu_is in the driver
> at91sam9261 and at91sam9g10 expect 3 clocks
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre at atmel.com>
> ---
>  arch/arm/mach-at91/at91cap9.c    |    2 ++
>  arch/arm/mach-at91/at91rm9200.c  |    2 ++
>  arch/arm/mach-at91/at91sam9260.c |    2 ++
>  arch/arm/mach-at91/at91sam9261.c |   29 +++++++++++++++--------------
>  arch/arm/mach-at91/at91sam9263.c |    2 ++
>  arch/arm/mach-at91/at91sam9g45.c |    2 ++
>  drivers/usb/host/ohci-at91.c     |   15 +++++----------
>  7 files changed, 30 insertions(+), 24 deletions(-)
>
> diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c
> index bfc6844..ecdd54d 100644
> --- a/arch/arm/mach-at91/at91cap9.c
> +++ b/arch/arm/mach-at91/at91cap9.c
> @@ -219,6 +219,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
>        CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
> +       /* fake hclk clock */
why is it a fake clock??
> +       CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
>  };
>
>  static struct clk_lookup usart_clocks_lookups[] = {
> diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
> index f73302d..713d3bd 100644
> --- a/arch/arm/mach-at91/at91rm9200.c
> +++ b/arch/arm/mach-at91/at91rm9200.c
> @@ -193,6 +193,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
>        CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk),
> +       /* fake hclk clock */
> +       CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
>  };
>
>  static struct clk_lookup usart_clocks_lookups[] = {
> diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
> index cb397be..a9be758 100644
> --- a/arch/arm/mach-at91/at91sam9260.c
> +++ b/arch/arm/mach-at91/at91sam9260.c
> @@ -199,6 +199,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
>        CLKDEV_CON_DEV_ID("t4_clk", "atmel_tcb.1", &tc4_clk),
>        CLKDEV_CON_DEV_ID("t5_clk", "atmel_tcb.1", &tc5_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk),
> +       /* fake hclk clock */
> +       CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
>  };
>
>  static struct clk_lookup usart_clocks_lookups[] = {
> diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
> index 6c8e3b5..658a518 100644
> --- a/arch/arm/mach-at91/at91sam9261.c
> +++ b/arch/arm/mach-at91/at91sam9261.c
> @@ -129,6 +129,20 @@ static struct clk lcdc_clk = {
>        .type           = CLK_TYPE_PERIPHERAL,
>  };
>
> +/* HClocks */
> +static struct clk hck0 = {
> +       .name           = "hck0",
> +       .pmc_mask       = AT91_PMC_HCK0,
> +       .type           = CLK_TYPE_SYSTEM,
> +       .id             = 0,
> +};
> +static struct clk hck1 = {
> +       .name           = "hck1",
> +       .pmc_mask       = AT91_PMC_HCK1,
> +       .type           = CLK_TYPE_SYSTEM,
> +       .id             = 1,
> +};
> +
>  static struct clk *periph_clocks[] __initdata = {
>        &pioA_clk,
>        &pioB_clk,
> @@ -161,6 +175,7 @@ static struct clk_lookup periph_clocks_lookups[] = {
>        CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk),
> +       CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0),
>  };
>
>  static struct clk_lookup usart_clocks_lookups[] = {
> @@ -199,20 +214,6 @@ static struct clk pck3 = {
>        .id             = 3,
>  };
>
> -/* HClocks */
> -static struct clk hck0 = {
> -       .name           = "hck0",
> -       .pmc_mask       = AT91_PMC_HCK0,
> -       .type           = CLK_TYPE_SYSTEM,
> -       .id             = 0,
> -};
> -static struct clk hck1 = {
> -       .name           = "hck1",
> -       .pmc_mask       = AT91_PMC_HCK1,
> -       .type           = CLK_TYPE_SYSTEM,
> -       .id             = 1,
> -};
> -
>  static void __init at91sam9261_register_clocks(void)
>  {
>        int i;
> diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
> index 044f3c9..f83fbb0 100644
> --- a/arch/arm/mach-at91/at91sam9263.c
> +++ b/arch/arm/mach-at91/at91sam9263.c
> @@ -189,6 +189,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
>        CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk),
>        CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk),
>        CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk),
> +       /* fake hclk clock */
> +       CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
>  };
>
>  static struct clk_lookup usart_clocks_lookups[] = {
> diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
> index e04c5fb..4d743c0 100644
> --- a/arch/arm/mach-at91/at91sam9g45.c
> +++ b/arch/arm/mach-at91/at91sam9g45.c
> @@ -215,6 +215,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
>        CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.1", &tcb0_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk),
>        CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk),
> +       /* fake hclk clock */
> +       CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk),
>  };
>
>  static struct clk_lookup usart_clocks_lookups[] = {
> diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
> index 944291e..e08cb10 100644
> --- a/drivers/usb/host/ohci-at91.c
> +++ b/drivers/usb/host/ohci-at91.c
> @@ -35,8 +35,7 @@ extern int usb_disabled(void);
>
>  static void at91_start_clock(void)
>  {
> -       if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
> -               clk_enable(hclk);
> +       clk_enable(hclk);
>        clk_enable(iclk);
>        clk_enable(fclk);
>        clocked = 1;
> @@ -46,8 +45,7 @@ static void at91_stop_clock(void)
>  {
>        clk_disable(fclk);
>        clk_disable(iclk);
> -       if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
> -               clk_disable(hclk);
> +       clk_disable(hclk);
>        clocked = 0;
>  }
>
> @@ -142,8 +140,7 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
>
>        iclk = clk_get(&pdev->dev, "ohci_clk");
>        fclk = clk_get(&pdev->dev, "uhpck");
> -       if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
> -               hclk = clk_get(&pdev->dev, "hck0");
> +       hclk = clk_get(&pdev->dev, "hclk");
>
>        at91_start_hc(pdev);
>        ohci_hcd_init(hcd_to_ohci(hcd));
> @@ -155,8 +152,7 @@ static int usb_hcd_at91_probe(const struct hc_driver *driver,
>        /* Error handling */
>        at91_stop_hc(pdev);
>
> -       if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
> -               clk_put(hclk);
> +       clk_put(hclk);
>        clk_put(fclk);
>        clk_put(iclk);
>
> @@ -192,8 +188,7 @@ static void usb_hcd_at91_remove(struct usb_hcd *hcd,
>        release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
>        usb_put_hcd(hcd);
>
> -       if (cpu_is_at91sam9261() || cpu_is_at91sam9g10())
> -               clk_put(hclk);
> +       clk_put(hclk);
>        clk_put(fclk);
>        clk_put(iclk);
>        fclk = iclk = hclk = NULL;
> --
> 1.7.5.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



More information about the linux-arm-kernel mailing list