This patch series adds support for DRM FIMD DT for Exynos4 DT Machines, specifically for Exynos4412 SoC.
changes since v8: - addressed comments to add missing documentation for clock and clock-names properties as pointed out by Sachin Kamat sachin.kamat@linaro.org
changes since v7: - rebased to kgene's "for-next" - Migrated to Common Clock Framework - removed the patch "ARM: dts: Add FIMD AUXDATA node entry for exynos4 DT", as migration to Common Clock Framework will NOT need this. - addressed the comments raised by Sachin Kamat sachin.kamat@linaro.org
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 kgene's "for-next" https://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/log/?h=...
Sachin Kamat (1): ARM: dts: Add lcd pinctrl node entries for EXYNOS4412 SoC
Vikas Sajjan (3): ARM: dts: Add FIMD node to exynos4 ARM: dts: Add FIMD node and display timing node to exynos4412-origen.dts ARM: dts: Add FIMD DT binding Documentation
.../devicetree/bindings/video/samsung-fimd.txt | 68 ++++++++++++++++++++ arch/arm/boot/dts/exynos4.dtsi | 11 ++++ arch/arm/boot/dts/exynos4412-origen.dts | 22 +++++++ arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 14 ++++ 4 files changed, 115 insertions(+) create mode 100644 Documentation/devicetree/bindings/video/samsung-fimd.txt
Adds common FIMD device node for all Exynos4 SoCs.
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- arch/arm/boot/dts/exynos4.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index 9ac47d5..2480aaa 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi @@ -356,4 +356,15 @@ #dma-requests = <1>; }; }; + + 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>; + clocks = <&clock 140>, <&clock 283>; + clock-names = "sclk_fimd", "fimd"; + status = "disabled"; + }; };
From: Sachin Kamat sachin.kamat@linaro.org
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>;
On 22 March 2013 19:26, Vikas Sajjan vikas.sajjan@linaro.org wrote:
From: Sachin Kamat sachin.kamat@linaro.org
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>;
};
Is lcd_en a board specific configuration. If so, this has to be moved into board specfic dts file. Same with lcd_sync.
Thanks, Thomas.
lcd_clk: lcd-clk { samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3"; samsung,pin-function = <2>;
-- 1.7.9.5
-- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 a5478bd..8953c92 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"; };
On 22 March 2013 19:26, Vikas Sajjan vikas.sajjan@linaro.org wrote:
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 a5478bd..8953c92 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>;
' Does the power-domain have be board specific. Can this be moved into SoC specific dtsi file?
Thanks, Thomas.
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"; };
-- 1.7.9.5
-- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Adds FIMD DT binding documentation for both Samsung SoC and Board, with an example
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org --- .../devicetree/bindings/video/samsung-fimd.txt | 68 ++++++++++++++++++++ 1 file changed, 68 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..f92c507 --- /dev/null +++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt @@ -0,0 +1,68 @@ +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". + +- clocks : List of phandle and clock ID pairs, one pair for each clock input + to the device. Should contain clock ID as per + Documentation/devicetree/bindings/clock/exynosXXXX-clock.txt + +- clock-names: List of clock input name strings sorted in the same order as + the clocks property. Should contain "sclk_fimd" and "fimd". + +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>; + clocks = <&clock 140>, <&clock 283>; + clock-names = "sclk_fimd", "fimd"; + status = "disabled"; + }; + +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 22 March 2013 19:26, Vikas Sajjan vikas.sajjan@linaro.org wrote:
Adds FIMD DT binding documentation for both Samsung SoC and Board, with an example
Signed-off-by: Vikas Sajjan vikas.sajjan@linaro.org
.../devicetree/bindings/video/samsung-fimd.txt | 68 ++++++++++++++++++++ 1 file changed, 68 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..f92c507 --- /dev/null +++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt @@ -0,0 +1,68 @@ +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
Since the bindings documentation have to be generic across multiple platforms that uses the fimd controller, it is not right to say that the interrupt-parent phandle should be combiner node. Instead, it should just mention that it should be the phandle of the fimd controller's interrupt parent controller.
+- 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".
+- clocks : List of phandle and clock ID pairs, one pair for each clock input
to the device. Should contain clock ID as per
Documentation/devicetree/bindings/clock/exynosXXXX-clock.txt
Non-exynos platfroms can also migrate to dt. So writing file name above will be inappropriate.
+- clock-names: List of clock input name strings sorted in the same order as
the clocks property. Should contain "sclk_fimd" and "fimd".
+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>;
clocks = <&clock 140>, <&clock 283>;
clock-names = "sclk_fimd", "fimd";
status = "disabled";
};
+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";
};
-- 1.7.9.5
-- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/25/2013 12:10 PM, Thomas Abraham wrote:
--- /dev/null +++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt @@ -0,0 +1,68 @@ +Device-Tree bindings for Samsung SoC display controller (FIMD)
[...]
+- 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.
Since the interrupt order is supposed to be defined by the binding, perhaps it could be rephrased to something like:
- interrupts : should contain a list of all FIMD IP block interrupts in order: 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".
The path should be ../pinctrl/pinctrl-bindings.txt. It probably makes to sense to either have this one sentence or pinctrl/pinctrl-names properties listed with their description. So for example
- pinctrl : pin control group to be used for this controller; - pinctrl-names : should contain "default" entry;
or
The pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt must be used to define a pinctrl state named "default".
Hi Kukjin Kim,
Can you please apply these patches?
On Fri, Mar 22, 2013 at 7:26 PM, Vikas Sajjan vikas.sajjan@linaro.org wrote:
This patch series adds support for DRM FIMD DT for Exynos4 DT Machines, specifically for Exynos4412 SoC.
changes since v8: - addressed comments to add missing documentation for clock and clock-names properties as pointed out by Sachin Kamat sachin.kamat@linaro.org
changes since v7: - rebased to kgene's "for-next" - Migrated to Common Clock Framework - removed the patch "ARM: dts: Add FIMD AUXDATA node entry for exynos4 DT", as migration to Common Clock Framework will NOT need this. - addressed the comments raised by Sachin Kamat sachin.kamat@linaro.org
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 kgene's "for-next" https://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/log/?h=...
Sachin Kamat (1): ARM: dts: Add lcd pinctrl node entries for EXYNOS4412 SoC
Vikas Sajjan (3): ARM: dts: Add FIMD node to exynos4 ARM: dts: Add FIMD node and display timing node to exynos4412-origen.dts ARM: dts: Add FIMD DT binding Documentation
.../devicetree/bindings/video/samsung-fimd.txt | 68 ++++++++++++++++++++ arch/arm/boot/dts/exynos4.dtsi | 11 ++++ arch/arm/boot/dts/exynos4412-origen.dts | 22 +++++++ arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 14 ++++ 4 files changed, 115 insertions(+) create mode 100644 Documentation/devicetree/bindings/video/samsung-fimd.txt
-- 1.7.9.5
-- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
linaro-kernel@lists.linaro.org