* Sathya Prakash M R <sathyap@xxxxxx> [131203 00:35]: > Add device node for DSS module for AM4372. Both the > AM437x-Gp evm and Am43x-Epos evm use the same LCD panel. > The lcd timings are added in respective dts files. > Adds display pinctrl and enables required gpio. > Also set the right parent clock to the DSS clock. This seems to depend on Tomi's patches for the bindings, so it seems like we need to wait on this a bit. I'll untag this for now, please repost when the dependencies are merged. Regards, Tony > Signed-off-by: Sathya Prakash M R <sathyap@xxxxxx> > --- > arch/arm/boot/dts/am4372.dtsi | 28 ++++++++++++++ > arch/arm/boot/dts/am437x-gp-evm.dts | 68 ++++++++++++++++++++++++++++++++++ > arch/arm/boot/dts/am43x-epos-evm.dts | 64 ++++++++++++++++++++++++++++++++ > arch/arm/boot/dts/am43xx-clocks.dtsi | 2 + > 4 files changed, 162 insertions(+) > > diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi > index ea55a4e..b72a7df 100644 > --- a/arch/arm/boot/dts/am4372.dtsi > +++ b/arch/arm/boot/dts/am4372.dtsi > @@ -684,6 +684,34 @@ > num-cs = <4>; > status = "disabled"; > }; > + > + dss: dss@4832A000 { > + compatible = "ti,omap3-dss", "simple-bus"; > + reg = <0x4832A000 0x200>; > + ti,hwmods = "dss_core"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; > + > + dispc@4832A400 { > + compatible = "ti,omap3-dispc"; > + reg = <0x4832A400 0x400>; > + interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; > + ti,hwmods = "dss_dispc"; > + }; > + > + dpi: encoder@0 { > + compatible = "ti,omap3-dpi"; > + }; > + > + rfbi: rfbi@4832A800 { > + compatible = "ti,omap3-rfbi"; > + reg = <0x4832A800 0x100>; > + ti,hwmods = "dss_rfbi"; > + }; > + > + }; > + > }; > > clocks { > diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts > index 2e79bda..e58652c6 100644 > --- a/arch/arm/boot/dts/am437x-gp-evm.dts > +++ b/arch/arm/boot/dts/am437x-gp-evm.dts > @@ -24,6 +24,31 @@ > brightness-levels = <0 51 53 56 62 75 101 152 255>; > default-brightness-level = <8>; > }; > + > + aliases { > + display0 = &lcd0; > + }; > + > + lcd0: display@0 { > + compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; > + video-source = <&dpi>; > + data-lines = <24>; > + panel-timing { > + clock-frequency = <33000000>; > + hactive = <800>; > + vactive = <480>; > + hfront-porch = <210>; > + hback-porch = <16>; > + hsync-len = <30>; > + vback-porch = <10>; > + vfront-porch = <22>; > + vsync-len = <13>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + }; > }; > > &am43xx_pinmux { > @@ -46,6 +71,40 @@ > 0x164 MUX_MODE0 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ > >; > }; > + > + dss_pinctrl: dss_pinctrl { > + pinctrl-single,pins = < > + 0x020 (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 8 -> DSS DATA 23 */ > + 0x024 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x028 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x02C (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x030 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x034 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x038 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x03C (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 15 -> DSS DATA 16 */ > + 0x0A0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */ > + 0x0A4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0A8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0AC (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0B0 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0B4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0B8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0BC (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0C0 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0C4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0C8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0CC (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0D0 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0D4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0D8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0DC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */ > + 0x0E0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */ > + 0x0E4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */ > + 0x0E8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */ > + 0x0EC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */ > + 0x238 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* GPIO 5_8 to select LCD / HDMI */ > + >; > + }; > }; > > &i2c0 { > @@ -69,3 +128,12 @@ > pinctrl-names = "default"; > pinctrl-0 = <&ecap0_pins>; > }; > + > +&gpio5 { > + status = "okay"; > +}; > + > +&dpi { > + pinctrl-names = "default"; > + pinctrl-0 = <&dss_pinctrl>; > +}; > diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts > index 2ebcde6..20e5415 100644 > --- a/arch/arm/boot/dts/am43x-epos-evm.dts > +++ b/arch/arm/boot/dts/am43x-epos-evm.dts > @@ -27,6 +27,31 @@ > enable-active-high; > }; > > + aliases { > + display0 = &lcd0; > + }; > + > + lcd0: display@0 { > + compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; > + video-source = <&dpi>; > + data-lines = <24>; > + panel-timing { > + clock-frequency = <33000000>; > + hactive = <800>; > + vactive = <480>; > + hfront-porch = <210>; > + hback-porch = <16>; > + hsync-len = <30>; > + vback-porch = <10>; > + vfront-porch = <22>; > + vsync-len = <13>; > + hsync-active = <0>; > + vsync-active = <0>; > + de-active = <1>; > + pixelclk-active = <1>; > + }; > + }; > + > am43xx_pinmux: pinmux@44e10800 { > cpsw_default: cpsw_default { > pinctrl-single,pins = < > @@ -122,6 +147,40 @@ > 0x19c (PIN_OUTPUT | MUX_MODE3) /* mcasp0_ahclkr.spi1_cs0 */ > >; > }; > + > + dss_pinctrl: dss_pinctrl { > + pinctrl-single,pins = < > + 0x020 (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 8 -> DSS DATA 23 */ > + 0x024 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x028 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x02C (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x030 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x034 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x038 (PIN_OUTPUT_PULLUP | MUX_MODE1) > + 0x03C (PIN_OUTPUT_PULLUP | MUX_MODE1) /*gpmc ad 15 -> DSS DATA 16 */ > + 0x0A0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 0 */ > + 0x0A4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0A8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0AC (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0B0 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0B4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0B8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0BC (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0C0 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0C4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0C8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0CC (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0D0 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0D4 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0D8 (PIN_OUTPUT_PULLUP | MUX_MODE0) > + 0x0DC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS DATA 15 */ > + 0x0E0 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS VSYNC */ > + 0x0E4 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS HSYNC */ > + 0x0E8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS PCLK */ > + 0x0EC (PIN_OUTPUT_PULLUP | MUX_MODE0) /* DSS AC BIAS EN */ > + 0x08C (PIN_OUTPUT_PULLUP | MUX_MODE7) /* GPMC CLK -> GPIO 2_1 to select LCD / HDMI */ > + >; > + }; > }; > > matrix_keypad: matrix_keypad@0 { > @@ -279,3 +338,8 @@ > pinctrl-0 = <&spi1_pins>; > status = "okay"; > }; > + > +&dpi { > + pinctrl-names = "default"; > + pinctrl-0 = <&dss_pinctrl>; > +}; > diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi b/arch/arm/boot/dts/am43xx-clocks.dtsi > index 85e7d4b..b20e192 100644 > --- a/arch/arm/boot/dts/am43xx-clocks.dtsi > +++ b/arch/arm/boot/dts/am43xx-clocks.dtsi > @@ -512,6 +512,8 @@ disp_clk: disp_clk@44df4244 { > compatible = "ti,mux-clock"; > clocks = <&dpll_disp_m2_ck>, <&dpll_core_m5_ck>, <&dpll_per_m2_ck>; > reg = <0x44df4244 0x4>; > + bit-mask = <0x3>; > + set-rate-parent; > }; > > dpll_extdev_ck: dpll_extdev_ck@44df2e60 { > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html