From mboxrd@z Thu Jan 1 00:00:00 1970 From: shawnguo@kernel.org (Shawn Guo) Date: Thu, 21 Dec 2017 15:54:19 +0800 Subject: [PATCH 2/2] ARM: dts: imx51-babbage: Fix the 26MHz clock modelling In-Reply-To: <1512246365-3657-2-git-send-email-festevam@gmail.com> References: <1512246365-3657-1-git-send-email-festevam@gmail.com> <1512246365-3657-2-git-send-email-festevam@gmail.com> Message-ID: <20171221075418.GG23230@dragon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sat, Dec 02, 2017 at 06:26:05PM -0200, Fabio Estevam wrote: > From: Fabio Estevam > > On imx51-babbage there is a 26MHz oscillator that is gated by GPIO3_1. > > The output of this clock feeds audio codec clock and USB PHY clocks, > which are gated by GPIO4_26 and GPIO2_1 respectively. > > Fix the clock representation by properly using gpio-gate-clock. > > The clock nodes can be moved out of the 'clocks' node. > > Based on a commit from Lucas Stach for imx51-zii-rdu1 board. > > This also fixes the following build warning with W=1: > > arch/arm/boot/dts/imx51-babbage.dtb: Warning (unit_address_vs_reg): Node /clocks/codec_clock has a reg or ranges property, but no unit name > > Signed-off-by: Fabio Estevam > --- > arch/arm/boot/dts/imx51-babbage.dts | 67 +++++++++++++++++++++++++++---------- > 1 file changed, 50 insertions(+), 17 deletions(-) > > diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts > index c432de7..663a3cd 100644 > --- a/arch/arm/boot/dts/imx51-babbage.dts > +++ b/arch/arm/boot/dts/imx51-babbage.dts > @@ -25,18 +25,41 @@ > reg = <0x90000000 0x20000000>; > }; > > - clocks { > - ckih1 { > - clock-frequency = <22579200>; > - }; > + ckih1 { > + clock-frequency = <22579200>; > + }; > > - clk_26M: codec_clock { > - compatible = "fixed-clock"; > - reg=<0>; > - #clock-cells = <0>; > - clock-frequency = <26000000>; > - gpios = <&gpio4 26 GPIO_ACTIVE_LOW>; > - }; > + clk_26M_osc: 26M_osc { While at it, I suggest we use hyphen rather than underscore in node name, and all lowercase for node name. Shawn > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <26000000>; > + }; > + > + clk_26M_osc_gate: 26M_gate { > + compatible = "gpio-gate-clock"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_clk26mhz_osc>; > + clocks = <&clk_26M_osc>; > + #clock-cells = <0>; > + enable-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; > + }; > + > + clk_26M_audio: audio_gate { > + compatible = "gpio-gate-clock"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_clk26mhz_audio>; > + clocks = <&clk_26M_osc_gate>; > + #clock-cells = <0>; > + enable-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>; > + }; > + > + clk_26M_usb: usbhost_gate { > + compatible = "gpio-gate-clock"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_clk26mhz_usb>; > + clocks = <&clk_26M_osc_gate>; > + #clock-cells = <0>; > + enable-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; > }; > > display1: disp1 { > @@ -162,7 +185,7 @@ > usbh1phy: usbh1phy at 0 { > compatible = "usb-nop-xceiv"; > reg = <0>; > - clocks = <&clks IMX5_CLK_DUMMY>; > + clocks = <&clk_26M_usb>; > clock-names = "main_clk"; > reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; > vcc-supply = <&vusb_reg>; > @@ -345,10 +368,8 @@ > > sgtl5000: codec at a { > compatible = "fsl,sgtl5000"; > - pinctrl-names = "default"; > - pinctrl-0 = <&pinctrl_clkcodec>; > reg = <0x0a>; > - clocks = <&clk_26M>; > + clocks = <&clk_26M_audio>; > VDDA-supply = <&vdig_reg>; > VDDIO-supply = <&vvideo_reg>; > }; > @@ -441,9 +462,21 @@ > >; > }; > > - pinctrl_clkcodec: clkcodecgrp { > + pinctrl_clk26mhz_audio: clk26mhzaudiocgrp { > + fsl,pins = < > + MX51_PAD_CSPI1_RDY__GPIO4_26 0x85 > + >; > + }; > + > + pinctrl_clk26mhz_osc: clk26mhzoscgrp { > + fsl,pins = < > + MX51_PAD_DI1_PIN12__GPIO3_1 0x85 > + >; > + }; > + > + pinctrl_clk26mhz_usb: clk26mhzusbgrp { > fsl,pins = < > - MX51_PAD_CSPI1_RDY__GPIO4_26 0x80000000 > + MX51_PAD_EIM_D17__GPIO2_1 0x85 > >; > }; > > -- > 2.7.4 >