Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: enable clock support for BCM5301X

Replace current device tree dummy clocks with real clock support for
Broadcom Northstar SoCs.

Signed-off-by: Jon Mason <jonmason@broadcom.com>
Reviewed-by: Ray Jui <rjui@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

authored by

Jon Mason and committed by
Florian Fainelli
cdc36b22 0f9f27a3

+72 -22
+72 -22
arch/arm/boot/dts/bcm5301x.dtsi
··· 8 8 * Licensed under the GNU/GPL. See COPYING for details. 9 9 */ 10 10 11 + #include <dt-bindings/clock/bcm-nsp.h> 11 12 #include <dt-bindings/gpio/gpio.h> 12 13 #include <dt-bindings/input/input.h> 13 14 #include <dt-bindings/interrupt-controller/irq.h> ··· 28 27 compatible = "ns16550"; 29 28 reg = <0x0300 0x100>; 30 29 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 31 - clock-frequency = <100000000>; 30 + clocks = <&iprocslow>; 32 31 status = "disabled"; 33 32 }; 34 33 ··· 36 35 compatible = "ns16550"; 37 36 reg = <0x0400 0x100>; 38 37 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 39 - clock-frequency = <100000000>; 38 + clocks = <&iprocslow>; 40 39 status = "disabled"; 41 40 }; 42 41 }; 43 42 44 43 mpcore { 45 44 compatible = "simple-bus"; 46 - ranges = <0x00000000 0x19020000 0x00003000>; 45 + ranges = <0x00000000 0x19000000 0x00023000>; 47 46 #address-cells = <1>; 48 47 #size-cells = <1>; 49 48 50 - scu@0000 { 49 + a9pll: arm_clk@00000 { 50 + #clock-cells = <0>; 51 + compatible = "brcm,nsp-armpll"; 52 + clocks = <&osc>; 53 + reg = <0x00000 0x1000>; 54 + }; 55 + 56 + scu@20000 { 51 57 compatible = "arm,cortex-a9-scu"; 52 - reg = <0x0000 0x100>; 58 + reg = <0x20000 0x100>; 53 59 }; 54 60 55 - timer@0200 { 61 + timer@20200 { 56 62 compatible = "arm,cortex-a9-global-timer"; 57 - reg = <0x0200 0x100>; 63 + reg = <0x20200 0x100>; 58 64 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 59 - clocks = <&clk_periph>; 65 + clocks = <&periph_clk>; 60 66 }; 61 67 62 - local-timer@0600 { 68 + local-timer@20600 { 63 69 compatible = "arm,cortex-a9-twd-timer"; 64 - reg = <0x0600 0x100>; 70 + reg = <0x20600 0x100>; 65 71 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; 66 - clocks = <&clk_periph>; 72 + clocks = <&periph_clk>; 67 73 }; 68 74 69 - gic: interrupt-controller@1000 { 75 + gic: interrupt-controller@21000 { 70 76 compatible = "arm,cortex-a9-gic"; 71 77 #interrupt-cells = <3>; 72 78 #address-cells = <0>; 73 79 interrupt-controller; 74 - reg = <0x1000 0x1000>, 75 - <0x0100 0x100>; 80 + reg = <0x21000 0x1000>, 81 + <0x20100 0x100>; 76 82 }; 77 83 78 - L2: cache-controller@2000 { 84 + L2: cache-controller@22000 { 79 85 compatible = "arm,pl310-cache"; 80 - reg = <0x2000 0x1000>; 86 + reg = <0x22000 0x1000>; 81 87 cache-unified; 82 88 arm,shared-override; 83 89 prefetch-data = <1>; ··· 102 94 103 95 clocks { 104 96 #address-cells = <1>; 105 - #size-cells = <0>; 97 + #size-cells = <1>; 98 + ranges; 106 99 107 - /* As long as we do not have a real clock driver us this 108 - * fixed clock */ 109 - clk_periph: periph { 110 - compatible = "fixed-clock"; 100 + osc: oscillator { 111 101 #clock-cells = <0>; 112 - clock-frequency = <400000000>; 102 + compatible = "fixed-clock"; 103 + clock-frequency = <25000000>; 104 + }; 105 + 106 + iprocmed: iprocmed { 107 + #clock-cells = <0>; 108 + compatible = "fixed-factor-clock"; 109 + clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>; 110 + clock-div = <2>; 111 + clock-mult = <1>; 112 + }; 113 + 114 + iprocslow: iprocslow { 115 + #clock-cells = <0>; 116 + compatible = "fixed-factor-clock"; 117 + clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>; 118 + clock-div = <4>; 119 + clock-mult = <1>; 120 + }; 121 + 122 + periph_clk: periph_clk { 123 + #clock-cells = <0>; 124 + compatible = "fixed-factor-clock"; 125 + clocks = <&a9pll>; 126 + clock-div = <2>; 127 + clock-mult = <1>; 113 128 }; 114 129 }; 115 130 ··· 207 176 gpio-controller; 208 177 #gpio-cells = <2>; 209 178 }; 179 + }; 180 + 181 + lcpll0: lcpll0@1800c100 { 182 + #clock-cells = <1>; 183 + compatible = "brcm,nsp-lcpll0"; 184 + reg = <0x1800c100 0x14>; 185 + clocks = <&osc>; 186 + clock-output-names = "lcpll0", "pcie_phy", "sdio", 187 + "ddr_phy"; 188 + }; 189 + 190 + genpll: genpll@1800c140 { 191 + #clock-cells = <1>; 192 + compatible = "brcm,nsp-genpll"; 193 + reg = <0x1800c140 0x24>; 194 + clocks = <&osc>; 195 + clock-output-names = "genpll", "phy", "ethernetclk", 196 + "usbclk", "iprocfast", "sata1", 197 + "sata2"; 210 198 }; 211 199 212 200 nand: nand@18028000 {