430-MIPS-BCM63XX-add-nand-clocks.patch 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --- a/arch/mips/bcm63xx/clk.c
  2. +++ b/arch/mips/bcm63xx/clk.c
  3. @@ -452,6 +452,23 @@ static struct clk clk_pcie = {
  4. };
  5. /*
  6. + * NAND clock
  7. + */
  8. +static void nand_set(struct clk *clk, int enable)
  9. +{
  10. + if (BCMCPU_IS_6362())
  11. + bcm_hwclock_set(CKCTL_6362_NAND_EN, enable);
  12. + else if (BCMCPU_IS_6368())
  13. + bcm_hwclock_set(CKCTL_6368_NAND_EN, enable);
  14. + else if (BCMCPU_IS_63268())
  15. + bcm_hwclock_set(CKCTL_63268_NAND_EN, enable);
  16. +}
  17. +
  18. +static struct clk clk_nand = {
  19. + .set = nand_set,
  20. +};
  21. +
  22. +/*
  23. * Internal peripheral clock
  24. */
  25. static struct clk clk_periph = {
  26. @@ -648,6 +665,7 @@ static struct clk_lookup bcm6362_clks[]
  27. CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
  28. CLKDEV_INIT("10001000.spi", "pll", &clk_hsspi_pll),
  29. /* gated clocks */
  30. + CLKDEV_INIT(NULL, "nand", &clk_nand),
  31. CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
  32. CLKDEV_INIT(NULL, "usbh", &clk_usbh),
  33. CLKDEV_INIT(NULL, "usbd", &clk_usbd),
  34. @@ -665,6 +683,7 @@ static struct clk_lookup bcm6368_clks[]
  35. CLKDEV_INIT("10000100.serial", "refclk", &clk_periph),
  36. CLKDEV_INIT("10000120.serial", "refclk", &clk_periph),
  37. /* gated clocks */
  38. + CLKDEV_INIT(NULL, "nand", &clk_nand),
  39. CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
  40. CLKDEV_INIT(NULL, "usbh", &clk_usbh),
  41. CLKDEV_INIT(NULL, "usbd", &clk_usbd),
  42. @@ -683,6 +702,7 @@ static struct clk_lookup bcm63268_clks[]
  43. CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
  44. CLKDEV_INIT("10001000.spi", "pll", &clk_hsspi_pll),
  45. /* gated clocks */
  46. + CLKDEV_INIT(NULL, "nand", &clk_nand),
  47. CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
  48. CLKDEV_INIT(NULL, "usbh", &clk_usbh),
  49. CLKDEV_INIT(NULL, "usbd", &clk_usbd),