ARM: dts: AM33XX: lcdc support
Subsystems (2)
v2 cover ARM: dts: AM33XX: lcdc support
Hi,
This series add DT sources for AM335x SoC as well as AM335x based boards.
As compared to previous version, in this version, comment has been added in dt source file about pinmux details so that user can easily correlate to that mentioned in TRM. Also author of one of the patch was actually "Manjunathappa, Prakash", here in this series, authorship has been made proper.
As pinmux is an SoC specific detail rather than IP specific one, addition of pin control has been done in a separate patch from the one in which display timings are added. Also it may aid in debugging in case of any issues.
This has been tested on AM335x based boards like AM335x EVM and AM335x EVM-SK.
This series is based on v3.8-rc3.
This series has a dependency on,
1. Series v16 "of: add display helper" by,
Steffen Trumtrar <[email protected]>
2. Series v3 "video: da8xx-fb: runtime timing configuration" by, me (Afzal Mohammed <[email protected]>)
3. Series v2 "video: da8xx-fb: DT support" by,
me (Afzal Mohammed <[email protected]>)
To test on AM335x, in addition to the above, following changes,
1. Patch "ARM: AM33XX: clock: SET_RATE_PARENT in lcd path" by, me (Afzal Mohammed <[email protected]>)
2. Patch "da8xx: Allow use by am33xx based devices" by, Pantelis Antoniou <[email protected]>
3. Series "HWMOD fixes for AM33xx PWM submodules and device tree nodes" by, Philip, Avinash <[email protected]>
would be required
All above dependencies along with those required for testing is available
@git://gitorious.org/x0148406-public/linux-kernel.git tags/da8xx-fb-dt-v3.8-rc3
Regards
Afzal
v2: add pinmux comment in dtsi files, correct authorship of one of the
patch.
Afzal Mohammed (4):
ARM: dts: AM33XX: Add lcdc node
ARM: dts: AM33XX: Add am335x-evm lcdc panel timings
ARM: dts: AM33XX: Add am335x-evmsk lcdc panel timings
ARM: dts: AM33XX: Add am335x-evmsk lcdc pincontrol info
Manjunathappa, Prakash (1):
ARM: dts: AM33XX: Add am335x-evm lcdc pincontrol info
arch/arm/boot/dts/am335x-evm.dts | 55 +++++++++++++++++++++++++++++++++++- arch/arm/boot/dts/am335x-evmsk.dts | 55 +++++++++++++++++++++++++++++++++++- arch/arm/boot/dts/am33xx.dtsi | 8 ++++++ 3 files changed, 116 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.9.5
PATCH v2 1/5 ARM: dts: AM33XX: Add lcdc node
Add lcdc node.
--- arch/arm/boot/dts/am33xx.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+)
arch/arm/boot/dts/am33xx.dtsi +8 -0
@@ -385,5 +385,13 @@ mac-address = [ 00 00 00 00 00 00 ]; }; }; + + lcdc: lcdc@4830e000 { + compatible = "ti,am3352-lcdc", "ti,da830-lcdc"; + reg = <0x4830e000 0x1000>; + interrupts = <36>; + status = "disabled"; + ti,hwmods = "lcdc"; + }; }; };
Signature · 1 line
1.7.9.5
PATCH v2 4/5 ARM: dts: AM33XX: Add am335x-evmsk lcdc panel timings
In reply to Afzal MohammedUpdate lcdc node with panel timings (typical) for AM335X-EVMSK.
--- arch/arm/boot/dts/am335x-evmsk.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm/boot/dts/am335x-evmsk.dts +20 -0
@@ -248,3 +248,23 @@ }; }; }; + +&lcdc { + status = "okay"; + + display-timings { + 480x272p57 { + clock-frequency = <9000000>; + hactive = <480>; + vactive = <272>; + hfront-porch = <8>; + hback-porch = <43>; + hsync-len = <4>; + vback-porch = <12>; + vfront-porch = <4>; + vsync-len = <10>; + hsync-active = <1>; + vsync-active = <1>; + }; + }; +};
Signature · 1 line
1.7.9.5
PATCH v2 5/5 ARM: dts: AM33XX: Add am335x-evmsk lcdc pincontrol info
In reply to Afzal MohammedUpdate pin mux information for lcd panel on AM335X-EVMSK.
---
v2: add comment on pinmux entries
arch/arm/boot/dts/am335x-evmsk.dts | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-)
arch/arm/boot/dts/am335x-evmsk.dts +34 -1
@@ -32,7 +32,7 @@ am33xx_pinmux: pinmux@44e10800 { pinctrl-names = "default"; - pinctrl-0 = <&user_leds_s0 &gpio_keys_s0>; + pinctrl-0 = <&user_leds_s0 &gpio_keys_s0 &lcd_pins_s0>; user_leds_s0: user_leds_s0 { pinctrl-single,pins = <
@@ -51,6 +51,39 @@ 0x9c 0x27 /* gpmc_ben0_cle.gpio2_5, INPUT | MODE7 */ >; }; + + lcd_pins_s0: lcd_pins_s0 { + pinctrl-single,pins = < + 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */ + 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */ + 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */ + 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */ + 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */ + 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */ + 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */ + 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */ + 0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */ + 0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */ + 0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */ + 0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */ + 0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */ + 0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */ + 0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */ + 0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */ + 0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */ + 0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */ + 0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */ + 0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */ + 0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */ + 0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */ + 0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */ + 0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */ + 0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */ + 0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */ + 0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */ + 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */ + >; + }; }; ocp {
Signature · 1 line
1.7.9.5
PATCH v2 2/5 ARM: dts: AM33XX: Add am335x-evm lcdc panel timings
In reply to Afzal MohammedUpdate lcdc node with panel timings (typical) for AM335X-EVM.
--- arch/arm/boot/dts/am335x-evm.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm/boot/dts/am335x-evm.dts +20 -0
@@ -244,3 +244,23 @@ &cpsw_emac1 { phy_id = <&davinci_mdio>, <1>; }; + +&lcdc { + status = "okay"; + + display-timings { + 800x480p62 { + clock-frequency = <30000000>; + hactive = <800>; + vactive = <480>; + hfront-porch = <39>; + hback-porch = <39>; + hsync-len = <47>; + vback-porch = <29>; + vfront-porch = <13>; + vsync-len = <2>; + hsync-active = <1>; + vsync-active = <1>; + }; + }; +};
Signature · 1 line
1.7.9.5
PATCH v2 3/5 ARM: dts: AM33XX: Add am335x-evm lcdc pincontrol info
In reply to Afzal MohammedFrom: "Manjunathappa, Prakash" <[email protected]>
Update pin mux information for lcd panel on AM335X-EVM
[afzal at ti.com: comment specifying user understandable pinmux details]
---
v2: correct authorship, add comment on pinmux
arch/arm/boot/dts/am335x-evm.dts | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-)
arch/arm/boot/dts/am335x-evm.dts +34 -1
@@ -26,7 +26,7 @@ am33xx_pinmux: pinmux at 44e10800 { pinctrl-names = "default"; - pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0>; + pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0 &lcd_pins_s0>; matrix_keypad_s0: matrix_keypad_s0 { pinctrl-single,pins = <
@@ -44,6 +44,39 @@ 0x154 0x27 /* spi0_d0.gpio0_3, INPUT | MODE7 */ >; }; + + lcd_pins_s0: lcd_pins_s0 { + pinctrl-single,pins = < + 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */ + 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */ + 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */ + 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */ + 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */ + 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */ + 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */ + 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */ + 0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */ + 0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */ + 0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */ + 0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */ + 0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */ + 0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */ + 0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */ + 0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */ + 0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */ + 0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */ + 0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */ + 0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */ + 0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */ + 0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */ + 0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */ + 0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */ + 0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */ + 0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */ + 0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */ + 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */ + >; + }; }; ocp {
Signature · 1 line
1.7.9.5