diff mbox

[v7,5/6] ARM: dts: enable clock support for Broadcom Cygnus

Message ID 1430849603-15849-6-git-send-email-rjui@broadcom.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ray Jui May 5, 2015, 6:13 p.m. UTC
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>
---
 arch/arm/boot/dts/bcm-cygnus-clock.dtsi |   89 +++++++++++++++++++++----------
 1 file changed, 61 insertions(+), 28 deletions(-)

Comments

Michael Turquette June 18, 2015, 7:51 p.m. UTC | #1
Quoting Ray Jui (2015-05-05 11:13:22)
> 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>

Patches 1-4 & 6 are applied to clk-next. You can add my Ack to this
patch:

Acked-by: Michael Turquette <mturquette@baylibre.com>

arm-soc guys,

Any chance you can pick this up? Alternatively I can take it through the
clk tree with an Ack.

Regards,
Mike

> ---
>  arch/arm/boot/dts/bcm-cygnus-clock.dtsi |   89 +++++++++++++++++++++----------
>  1 file changed, 61 insertions(+), 28 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
> index 60d8389..32bcd45 100644
> --- a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
> +++ b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
> @@ -36,56 +36,89 @@ clocks {
>         ranges;
>  
>         osc: oscillator {
> +               #clock-cells = <0>;
>                 compatible = "fixed-clock";
> -               #clock-cells = <1>;
>                 clock-frequency = <25000000>;
>         };
>  
> -       apb_clk: apb_clk {
> -               compatible = "fixed-clock";
> +       /* Cygnus ARM PLL */
> +       armpll: armpll {
>                 #clock-cells = <0>;
> -               clock-frequency = <1000000000>;
> +               compatible = "brcm,cygnus-armpll";
> +               clocks = <&osc>;
> +               reg = <0x19000000 0x1000>;
>         };
>  
> -       periph_clk: periph_clk {
> -               compatible = "fixed-clock";
> +       /* peripheral clock for system timer */
> +       periph_clk: arm_periph_clk {
>                 #clock-cells = <0>;
> -               clock-frequency = <500000000>;
> +               compatible = "fixed-factor-clock";
> +               clocks = <&armpll>;
> +               clock-div = <2>;
> +               clock-mult = <1>;
>         };
>  
> -       sdio_clk: lcpll_ch2 {
> -               compatible = "fixed-clock";
> +       /* APB bus clock */
> +       apb_clk: apb_clk {
>                 #clock-cells = <0>;
> -               clock-frequency = <200000000>;
> +               compatible = "fixed-factor-clock";
> +               clocks = <&armpll>;
> +               clock-div = <4>;
> +               clock-mult = <1>;
>         };
>  
> -       axi81_clk: axi81_clk {
> -               compatible = "fixed-clock";
> -               #clock-cells = <0>;
> -               clock-frequency = <100000000>;
> +       genpll: genpll {
> +               #clock-cells = <1>;
> +               compatible = "brcm,cygnus-genpll";
> +               reg = <0x0301d000 0x2c>, <0x0301c020 0x4>;
> +               clocks = <&osc>;
> +               clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys",
> +                                    "enet_sw", "audio_125", "can";
>         };
>  
> -       keypad_clk: keypad_clk {
> -               compatible = "fixed-clock";
> +       /* always 1/2 of the axi21 clock */
> +       axi41_clk: axi41_clk {
>                 #clock-cells = <0>;
> -               clock-frequency = <31806>;
> +               compatible = "fixed-factor-clock";
> +               clocks = <&genpll 1>;
> +               clock-div = <2>;
> +               clock-mult = <1>;
>         };
>  
> -       adc_clk: adc_clk {
> -               compatible = "fixed-clock";
> +       /* always 1/4 of the axi21 clock */
> +       axi81_clk: axi81_clk {
>                 #clock-cells = <0>;
> -               clock-frequency = <1562500>;
> +               compatible = "fixed-factor-clock";
> +               clocks = <&genpll 1>;
> +               clock-div = <4>;
> +               clock-mult = <1>;
>         };
>  
> -       pwm_clk: pwm_clk {
> -               compatible = "fixed-clock";
> -               #clock-cells = <0>;
> -               clock-frequency = <1000000>;
> +       lcpll0: lcpll0 {
> +               #clock-cells = <1>;
> +               compatible = "brcm,cygnus-lcpll0";
> +               reg = <0x0301d02c 0x1c>, <0x0301c020 0x4>;
> +               clocks = <&osc>;
> +               clock-output-names = "lcpll0", "pcie_phy", "ddr_phy", "sdio",
> +                                    "usb_phy", "smart_card", "ch5";
>         };
>  
> -       lcd_clk: mipipll_ch1 {
> -               compatible = "fixed-clock";
> -               #clock-cells = <0>;
> -               clock-frequency = <100000000>;
> +       mipipll: mipipll {
> +               #clock-cells = <1>;
> +               compatible = "brcm,cygnus-mipipll";
> +               reg = <0x180a9800 0x2c>, <0x0301c020 0x4>, <0x180aa024 0x4>;
> +               clocks = <&osc>;
> +               clock-output-names = "mipipll", "ch0_unused", "ch1_lcd",
> +                                    "ch2_v3d", "ch3_unused", "ch4_unused",
> +                                    "ch5_unused";
> +       };
> +
> +       asiu_clks: asiu_clks {
> +               #clock-cells = <1>;
> +               compatible = "brcm,cygnus-asiu-clk";
> +               reg = <0x0301d048 0xc>, <0x180aa024 0x4>;
> +
> +               clocks = <&osc>;
> +               clock-output-names = "keypad", "adc/touch", "pwm";
>         };
>  };
> -- 
> 1.7.9.5
>
Florian Fainelli June 18, 2015, 8:42 p.m. UTC | #2
On 18/06/15 12:51, Michael Turquette wrote:
> Quoting Ray Jui (2015-05-05 11:13:22)
>> 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>
> 
> Patches 1-4 & 6 are applied to clk-next. You can add my Ack to this
> patch:
> 
> Acked-by: Michael Turquette <mturquette@baylibre.com>
> 
> arm-soc guys,
> 
> Any chance you can pick this up? Alternatively I can take it through the
> clk tree with an Ack.

Applied to devicetree/next, thanks!
diff mbox

Patch

diff --git a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
index 60d8389..32bcd45 100644
--- a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
@@ -36,56 +36,89 @@  clocks {
 	ranges;
 
 	osc: oscillator {
+		#clock-cells = <0>;
 		compatible = "fixed-clock";
-		#clock-cells = <1>;
 		clock-frequency = <25000000>;
 	};
 
-	apb_clk: apb_clk {
-		compatible = "fixed-clock";
+	/* Cygnus ARM PLL */
+	armpll: armpll {
 		#clock-cells = <0>;
-		clock-frequency = <1000000000>;
+		compatible = "brcm,cygnus-armpll";
+		clocks = <&osc>;
+		reg = <0x19000000 0x1000>;
 	};
 
-	periph_clk: periph_clk {
-		compatible = "fixed-clock";
+	/* peripheral clock for system timer */
+	periph_clk: arm_periph_clk {
 		#clock-cells = <0>;
-		clock-frequency = <500000000>;
+		compatible = "fixed-factor-clock";
+		clocks = <&armpll>;
+		clock-div = <2>;
+		clock-mult = <1>;
 	};
 
-	sdio_clk: lcpll_ch2 {
-		compatible = "fixed-clock";
+	/* APB bus clock */
+	apb_clk: apb_clk {
 		#clock-cells = <0>;
-		clock-frequency = <200000000>;
+		compatible = "fixed-factor-clock";
+		clocks = <&armpll>;
+		clock-div = <4>;
+		clock-mult = <1>;
 	};
 
-	axi81_clk: axi81_clk {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <100000000>;
+	genpll: genpll {
+		#clock-cells = <1>;
+		compatible = "brcm,cygnus-genpll";
+		reg = <0x0301d000 0x2c>, <0x0301c020 0x4>;
+		clocks = <&osc>;
+		clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys",
+				     "enet_sw", "audio_125", "can";
 	};
 
-	keypad_clk: keypad_clk {
-		compatible = "fixed-clock";
+	/* always 1/2 of the axi21 clock */
+	axi41_clk: axi41_clk {
 		#clock-cells = <0>;
-		clock-frequency = <31806>;
+		compatible = "fixed-factor-clock";
+		clocks = <&genpll 1>;
+		clock-div = <2>;
+		clock-mult = <1>;
 	};
 
-	adc_clk: adc_clk {
-		compatible = "fixed-clock";
+	/* always 1/4 of the axi21 clock */
+	axi81_clk: axi81_clk {
 		#clock-cells = <0>;
-		clock-frequency = <1562500>;
+		compatible = "fixed-factor-clock";
+		clocks = <&genpll 1>;
+		clock-div = <4>;
+		clock-mult = <1>;
 	};
 
-	pwm_clk: pwm_clk {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <1000000>;
+	lcpll0: lcpll0 {
+		#clock-cells = <1>;
+		compatible = "brcm,cygnus-lcpll0";
+		reg = <0x0301d02c 0x1c>, <0x0301c020 0x4>;
+		clocks = <&osc>;
+		clock-output-names = "lcpll0", "pcie_phy", "ddr_phy", "sdio",
+				     "usb_phy", "smart_card", "ch5";
 	};
 
-	lcd_clk: mipipll_ch1 {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <100000000>;
+	mipipll: mipipll {
+		#clock-cells = <1>;
+		compatible = "brcm,cygnus-mipipll";
+		reg = <0x180a9800 0x2c>, <0x0301c020 0x4>, <0x180aa024 0x4>;
+		clocks = <&osc>;
+		clock-output-names = "mipipll", "ch0_unused", "ch1_lcd",
+				     "ch2_v3d", "ch3_unused", "ch4_unused",
+				     "ch5_unused";
+	};
+
+	asiu_clks: asiu_clks {
+		#clock-cells = <1>;
+		compatible = "brcm,cygnus-asiu-clk";
+		reg = <0x0301d048 0xc>, <0x180aa024 0x4>;
+
+		clocks = <&osc>;
+		clock-output-names = "keypad", "adc/touch", "pwm";
 	};
 };