This patch series adds support for DRM FIMD DT for Exynos4 DT Machines, specifically for Exynos4412 SoC.
changes since v6: - addressed comments and added interrupt-names = "fifo", "vsync", "lcd_sys" in exynos4.dtsi and re-ordered the interrupt numbering to match the order in interrupt combiner IP as suggested by Sylwester Nawrocki sylvester.nawrocki@gmail.com.
changes since v5: - renamed the fimd binding documentation file name as "samsung-fimd.txt", since it not only talks about exynos display controller but also about previous samsung display controllers. - rephrased an abmigious statement about the interrupt combiner in the fimd binding documentation as pointed out by Sachin Kamat sachin.kamat@linaro.org
changes since v4: - moved the fimd binding documentation to Documentation/devicetree/bindings/video/ as suggested by Sylwester Nawrocki sylvester.nawrocki@gmail.com
- added more fimd compatiblity strings in fimd documentation as discussed at https://patchwork.kernel.org/patch/2144861/ with Sylwester Nawrocki sylvester.nawrocki@gmail.com and Tomasz Figa tomasz.figa@gmail.com
- modified compatible string for exynos4 fimd as "exynos4210-fimd" exynos5 fimd as "exynos5250-fimd" to stick to the rule that compatible value should be named after first specific SoC model in which this particular IP version was included as discussed at https://patchwork.kernel.org/patch/2144861/
- documented more about the interrupt combiner and their order as suggested by Sylwester Nawrocki sylvester.nawrocki@gmail.com
changes since v3: - rebased on http://git.kernel.org/?p=linux/kernel/git/kgene/linux-samsung.git%3Ba=shortl...
changes since v2: - added alias to 'fimd@11c00000' node (reported by: Rahul Sharma r.sh.open@gmail.com) - removed 'lcd0_data' node as there was already a similar node lcd_data24 (reported by: Jingoo Han jg1.han@samsung.com - replaced spaces with tabs in display-timing node
changes since v1: - added new patch to add FIMD DT binding Documentation - removed patch enabling SAMSUNG_DEV_BACKLIGHT and SAMSUNG_DEV_PMW for mach-exynos4 DT - added 'status' property to fimd DT node
Is based on branch "for-next-next" http://git.kernel.org/?p=linux/kernel/git/kgene/linux-samsung.git%3Ba=shortl...
Sachin Kamat (1): ARM: dts: Add lcd pinctrl node entries for EXYNOS4412 SoC
Vikas Sajjan (4): ARM: dts: Add FIMD node to exynos4 ARM: dts: Add FIMD node and display timing node to exynos4412-origen.dts ARM: dts: Add FIMD AUXDATA node entry for exynos4 DT ARM: dts: Add FIMD DT binding Documentation
.../devicetree/bindings/video/samsung-fimd.txt | 58 ++++++++++++++++++++ arch/arm/boot/dts/exynos4.dtsi | 8 +++ arch/arm/boot/dts/exynos4412-origen.dts | 22 ++++++++ arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 14 +++++ arch/arm/mach-exynos/mach-exynos4-dt.c | 2 + 5 files changed, 104 insertions(+) create mode 100644 Documentation/devicetree/bindings/video/samsung-fimd.txt
This adds common FIMD device node for all Exynos4 SoCs.
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- arch/arm/boot/dts/exynos4.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index 6581bb2..26190e0 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi @@ -297,4 +297,12 @@ interrupts = <0 34 0>; }; }; + + fimd: fimd@11c00000 { + compatible = "samsung,exynos4210-fimd"; + interrupt-parent = <&combiner>; + reg = <0x11c00000 0x20000>; + interrupt-names = "fifo", "vsync", "lcd_sys"; + interrupts = <11 0>, <11 1>, <11 2>; + }; };
fimd: fimd@11c00000 {
compatible = "samsung,exynos4210-fimd";
interrupt-parent = <&combiner>;
reg = <0x11c00000 0x20000>;
interrupt-names = "fifo", "vsync", "lcd_sys";
interrupts = <11 0>, <11 1>, <11 2>;
How about adding status = "disabled"; above. Sorry for not pointing it out earlier.
From: Sachin Kamat sachin.kamat@linaro.org
This patch adds the lcd panel related picntrl nodes for Exynos4412 SoC
Signed-off-by: Sachin Kamat sachin.kamat@linaro.org Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi index 099cec7..a59d69c 100644 --- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi +++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi @@ -354,6 +354,20 @@ samsung,pin-drv = <0>; };
+ lcd_sync: lcd-sync { + samsung,pins = "gpf0-0", "gpf0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + lcd_en: lcd-en { + samsung,pins = "gpf0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + lcd_clk: lcd-clk { samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3"; samsung,pin-function = <2>;
Adds FIMD DT support to Origen quad board
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- arch/arm/boot/dts/exynos4412-origen.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts index 31e14c4..a6fd41f 100644 --- a/arch/arm/boot/dts/exynos4412-origen.dts +++ b/arch/arm/boot/dts/exynos4412-origen.dts @@ -70,6 +70,28 @@ status = "okay"; };
+ fimd@11c00000 { + samsung,power-domain = <&pd_lcd0>; + pinctrl-0 = <&lcd_sync &lcd_clk &lcd_en &lcd_data24 &pwm1_out>; + pinctrl-names = "default"; + status = "okay"; + }; + + display-timings { + native-mode = <&timing0>; + timing0: timing@0 { + clock-frequency = <50000>; + hactive = <1024>; + vactive = <600>; + hfront-porch = <64>; + hback-porch = <16>; + hsync-len = <48>; + vback-porch = <64>; + vfront-porch = <16>; + vsync-len = <3>; + }; + }; + serial@13800000 { status = "okay"; };
Adds the FIMD AUXDATA node
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- arch/arm/mach-exynos/mach-exynos4-dt.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c index b68115a..b32a929 100644 --- a/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/arch/arm/mach-exynos/mach-exynos4-dt.c @@ -84,6 +84,8 @@ static const struct of_dev_auxdata exynos4_auxdata_lookup[] __initconst = { OF_DEV_AUXDATA("samsung,exynos4210-tmu", EXYNOS4_PA_TMU, "exynos-tmu", NULL), OF_DEV_AUXDATA("samsung,mfc-v5", 0x13400000, "s5p-mfc", NULL), + OF_DEV_AUXDATA("samsung,exynos4210-fimd", EXYNOS4_PA_FIMD0, + "exynos4-fb.0", NULL), {}, };
Adds FIMD DT binding documentation both Samsung SoC and Board, with an example
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- .../devicetree/bindings/video/samsung-fimd.txt | 58 ++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Documentation/devicetree/bindings/video/samsung-fimd.txt
diff --git a/Documentation/devicetree/bindings/video/samsung-fimd.txt b/Documentation/devicetree/bindings/video/samsung-fimd.txt new file mode 100644 index 0000000..0bca1ca --- /dev/null +++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt @@ -0,0 +1,58 @@ +Device-Tree bindings for Samsung SoC display controller (FIMD) + +FIMD stands for Fully Interactive Mobile Display, is the Display Controller for +the Samsung series of SoCs which transfers the image data from a video buffer +located in the system memory to an external LCD interface. + +Required properties: +- compatible : value should be one of the following + "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */ + "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */ + "samsung,s5p6440-fimd"; /* for S5P64X0 SoCs */ + "samsung,s5pc100-fimd"; /* for S5PC100 SoC */ + "samsung,s5pv210-fimd"; /* for S5PV210 SoC */ + "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */ + "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */ + +- reg : physical base address of the FIMD and length of memory mapped region + +- interrupt-parent : a phandle to the interrupt combiner node + +- interrupts : should contain a list of all FIMD IP block interrupts: + FIFO Level, VSYNC, LCD_SYSTEM. The interrupt specifier format depends + on the interrupt controller used. + +- interrupt-names : should contain the interrupt names: "fifo", "vsync", + "lcd_sys", in the same order as they were listed in the interrupts + property. + +- pinctrl : property defining the pinctrl configurations with a phandle + +- pinctrl-names : "default" state needs to be specified in the fimd node + The pinctrl bindings defined in + ../../../pinctrl/pinctrl-bindings.txt must be used to define a + pinctrl state named "default". + +Optional Properties: +- samsung,power-domain := a phandle to FIMD power domain node + +Example: + +SoC specific DT Entry: + + fimd@11c00000 { + compatible = "samsung,exynos4210-fimd"; + interrupt-parent = <&combiner>; + reg = <0x11c00000 0x20000>; + interrupt-names = "fifo", "vsync", "lcd_sys"; + interrupts = <11 0>, <11 1>, <11 2>; + }; + +Board specific DT Entry: + + fimd@11c00000 { + samsung,power-domain = <&pd_lcd0>; + pinctrl-0 = <&lcd_sync &lcd_clk &lcd_en &lcd0_data &pwm1_out>; + pinctrl-names = "default"; + status = "okay"; + };
On 13 March 2013 15:39, Vikas Sajjan vikas.sajjan@linaro.org wrote:
Adds FIMD DT binding documentation both Samsung SoC and Board, with an example
s/documentation both/documentation for both
linaro-kernel@lists.linaro.org