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 Broadcom Cygnus

Replace current device tree dummy clocks with real clock support for
Broadcom Cygnus SoC

Signed-off-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

authored by

Ray Jui and committed by
Florian Fainelli
5253ed19 d770e558

+62 -29
+62 -29
arch/arm/boot/dts/bcm-cygnus-clock.dtsi
··· 36 36 ranges; 37 37 38 38 osc: oscillator { 39 + #clock-cells = <0>; 39 40 compatible = "fixed-clock"; 40 - #clock-cells = <1>; 41 41 clock-frequency = <25000000>; 42 42 }; 43 43 44 + /* Cygnus ARM PLL */ 45 + armpll: armpll { 46 + #clock-cells = <0>; 47 + compatible = "brcm,cygnus-armpll"; 48 + clocks = <&osc>; 49 + reg = <0x19000000 0x1000>; 50 + }; 51 + 52 + /* peripheral clock for system timer */ 53 + periph_clk: arm_periph_clk { 54 + #clock-cells = <0>; 55 + compatible = "fixed-factor-clock"; 56 + clocks = <&armpll>; 57 + clock-div = <2>; 58 + clock-mult = <1>; 59 + }; 60 + 61 + /* APB bus clock */ 44 62 apb_clk: apb_clk { 45 - compatible = "fixed-clock"; 46 63 #clock-cells = <0>; 47 - clock-frequency = <1000000000>; 64 + compatible = "fixed-factor-clock"; 65 + clocks = <&armpll>; 66 + clock-div = <4>; 67 + clock-mult = <1>; 48 68 }; 49 69 50 - periph_clk: periph_clk { 51 - compatible = "fixed-clock"; 52 - #clock-cells = <0>; 53 - clock-frequency = <500000000>; 70 + genpll: genpll { 71 + #clock-cells = <1>; 72 + compatible = "brcm,cygnus-genpll"; 73 + reg = <0x0301d000 0x2c>, <0x0301c020 0x4>; 74 + clocks = <&osc>; 75 + clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys", 76 + "enet_sw", "audio_125", "can"; 54 77 }; 55 78 56 - sdio_clk: lcpll_ch2 { 57 - compatible = "fixed-clock"; 79 + /* always 1/2 of the axi21 clock */ 80 + axi41_clk: axi41_clk { 58 81 #clock-cells = <0>; 59 - clock-frequency = <200000000>; 82 + compatible = "fixed-factor-clock"; 83 + clocks = <&genpll 1>; 84 + clock-div = <2>; 85 + clock-mult = <1>; 60 86 }; 61 87 88 + /* always 1/4 of the axi21 clock */ 62 89 axi81_clk: axi81_clk { 63 - compatible = "fixed-clock"; 64 90 #clock-cells = <0>; 65 - clock-frequency = <100000000>; 91 + compatible = "fixed-factor-clock"; 92 + clocks = <&genpll 1>; 93 + clock-div = <4>; 94 + clock-mult = <1>; 66 95 }; 67 96 68 - keypad_clk: keypad_clk { 69 - compatible = "fixed-clock"; 70 - #clock-cells = <0>; 71 - clock-frequency = <31806>; 97 + lcpll0: lcpll0 { 98 + #clock-cells = <1>; 99 + compatible = "brcm,cygnus-lcpll0"; 100 + reg = <0x0301d02c 0x1c>, <0x0301c020 0x4>; 101 + clocks = <&osc>; 102 + clock-output-names = "lcpll0", "pcie_phy", "ddr_phy", "sdio", 103 + "usb_phy", "smart_card", "ch5"; 72 104 }; 73 105 74 - adc_clk: adc_clk { 75 - compatible = "fixed-clock"; 76 - #clock-cells = <0>; 77 - clock-frequency = <1562500>; 106 + mipipll: mipipll { 107 + #clock-cells = <1>; 108 + compatible = "brcm,cygnus-mipipll"; 109 + reg = <0x180a9800 0x2c>, <0x0301c020 0x4>, <0x180aa024 0x4>; 110 + clocks = <&osc>; 111 + clock-output-names = "mipipll", "ch0_unused", "ch1_lcd", 112 + "ch2_v3d", "ch3_unused", "ch4_unused", 113 + "ch5_unused"; 78 114 }; 79 115 80 - pwm_clk: pwm_clk { 81 - compatible = "fixed-clock"; 82 - #clock-cells = <0>; 83 - clock-frequency = <1000000>; 84 - }; 116 + asiu_clks: asiu_clks { 117 + #clock-cells = <1>; 118 + compatible = "brcm,cygnus-asiu-clk"; 119 + reg = <0x0301d048 0xc>, <0x180aa024 0x4>; 85 120 86 - lcd_clk: mipipll_ch1 { 87 - compatible = "fixed-clock"; 88 - #clock-cells = <0>; 89 - clock-frequency = <100000000>; 121 + clocks = <&osc>; 122 + clock-output-names = "keypad", "adc/touch", "pwm"; 90 123 }; 91 124 };