brcm63xx: add clkdev lookup support
[openwrt/openwrt.git] / target / linux / brcm63xx / patches-4.4 / 341-MIPS-BCM63XX-add-support-for-BCM6318.patch
index 3b0995afcdf7978242f29444431845f94f47916b..3b5da024b46120950d7ea8b4e59264d96a66ae70 100644 (file)
@@ -46,7 +46,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
                val = bcm_mpi_readl(MPI_CSBASE_REG(0));
 --- a/arch/mips/bcm63xx/clk.c
 +++ b/arch/mips/bcm63xx/clk.c
-@@ -252,7 +252,9 @@ static void hsspi_set(struct clk *clk, i
+@@ -288,7 +288,9 @@ static void hsspi_set(struct clk *clk, i
  {
        u32 mask;
  
@@ -57,23 +57,45 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
                mask = CKCTL_6328_HSSPI_EN;
        else if (BCMCPU_IS_6362())
                mask = CKCTL_6362_HSSPI_EN;
-@@ -420,12 +422,16 @@ void clk_put(struct clk *clk)
+@@ -440,6 +442,19 @@ static struct clk_lookup bcm3368_clks[]
+       CLKDEV_INIT("bcm63xx_enet.1", "enet", &clk_enet1),
+ };
  
- EXPORT_SYMBOL(clk_put);
++static struct clk_lookup bcm6318_clks[] = {
++      /* fixed rate clocks */
++      CLKDEV_INIT(NULL, "periph", &clk_periph),
++      CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
++      CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
++      /* gated clocks */
++      CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
++      CLKDEV_INIT(NULL, "usbh", &clk_usbh),
++      CLKDEV_INIT(NULL, "usbd", &clk_usbh),
++      CLKDEV_INIT(NULL, "hsspi", &clk_hsspi),
++      CLKDEV_INIT(NULL, "pcie", &clk_pcie),
++};
++
+ static struct clk_lookup bcm6328_clks[] = {
+       /* fixed rate clocks */
+       CLKDEV_INIT(NULL, "periph", &clk_periph),
+@@ -561,6 +576,7 @@ static struct clk_lookup bcm63268_clks[]
+       CLKDEV_INIT(NULL, "pcie", &clk_pcie),
+ };
  
 +#define HSSPI_PLL_HZ_6318     250000000
  #define HSSPI_PLL_HZ_6328     133333333
  #define HSSPI_PLL_HZ_6362     400000000
  
- static int __init bcm63xx_clk_init(void)
- {
-       switch (bcm63xx_get_cpu_id()) {
+@@ -570,6 +586,10 @@ static int __init bcm63xx_clk_init(void)
+       case BCM3368_CPU_ID:
+               clkdev_add_table(bcm3368_clks, ARRAY_SIZE(bcm3368_clks));
+               break;
 +      case BCM6318_CPU_ID:
-+              clk_hsspi.rate = HSSPI_PLL_HZ_6318;
++              clk_hsspi_pll.rate = HSSPI_PLL_HZ_6318;
++              clkdev_add_table(bcm6318_clks, ARRAY_SIZE(bcm6318_clks));
 +              break;
        case BCM6328_CPU_ID:
-               clk_hsspi.rate = HSSPI_PLL_HZ_6328;
-               break;
+               clk_hsspi_pll.rate = HSSPI_PLL_HZ_6328;
+               clkdev_add_table(bcm6328_clks, ARRAY_SIZE(bcm6328_clks));
 --- a/arch/mips/bcm63xx/cpu.c
 +++ b/arch/mips/bcm63xx/cpu.c
 @@ -41,6 +41,14 @@ static const int bcm3368_irqs[] = {