This patchset adds DT nodes for FIMD and DP controller for Exynos5420 based SMDK. It moves all common properties of FIMD and DP controller DT node specific to Exynos5 Socs like 5250 and 5420 to exynos5.dtsi file. It also adds required PM domain DT nodes for exynos5420. Is rebased on branch kgene's "for-next" https://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/log/?h=for-next The DP PHY DT Node is based on Jingoo Han's inflight patchset at http://comments.gmane.org/gmane.linux.drivers.video-input-infrastructure/66435 Vikas Sajjan (6): ARM: dts: move display-timimg information inside FIMD DT node for exynos5250 ARM: dts: Update FIMD DT node for Exynos5 SoCs ARM: dts: Add FIMD DT node to exynos5420 DTS files ARM: dts: Update DP controller DT Node for Exynos5 based SoCs ARM: dts: Add DP controller DT node to exynos5420 SoC ARM: dts: add pin state information for DP HPD support to Exynos5420 Yadwinder Singh Brar (1): ARM: dts: Add basic PM domains for EXYNOS5420 arch/arm/boot/dts/exynos5.dtsi | 39 +++++++++++++++++++++++ arch/arm/boot/dts/exynos5250-arndale.dts | 9 ------ arch/arm/boot/dts/exynos5250-smdk5250.dts | 35 +++++++++------------ arch/arm/boot/dts/exynos5250.dtsi | 18 ++--------- arch/arm/boot/dts/exynos5420-pinctrl.dtsi | 7 +++++ arch/arm/boot/dts/exynos5420-smdk5420.dts | 23 ++++++++++++++ arch/arm/boot/dts/exynos5420.dtsi | 49 +++++++++++++++++++++++++++++ 7 files changed, 135 insertions(+), 45 deletions(-) -- 1.7.9.5
As the display-timing information is parsed by FIMD driver, it makes sense to move the display-timimg DT node inside FIMD DT node for exynos5250 Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> --- arch/arm/boot/dts/exynos5250-smdk5250.dts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 49f18c2..3b32c26 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -262,19 +262,21 @@ pinctrl-0 = <&dp_hpd>; }; - display-timings { - native-mode = <&timing0>; - timing0: timing@0 { - /* 1280x800 */ - clock-frequency = <50000>; - hactive = <1280>; - vactive = <800>; - hfront-porch = <4>; - hback-porch = <4>; - hsync-len = <4>; - vback-porch = <4>; - vfront-porch = <4>; - vsync-len = <4>; + fimd { + display-timings { + native-mode = <&timing0>; + timing0: timing@0 { + /* 1280x800 */ + clock-frequency = <50000>; + hactive = <1280>; + vactive = <800>; + hfront-porch = <4>; + hback-porch = <4>; + hsync-len = <4>; + vback-porch = <4>; + vfront-porch = <4>; + vsync-len = <4>; + }; }; }; -- 1.7.9.5
Moves the properties of FIMD DT node which are common across Exynos5 based SoCs like Exynos5250 and Exxynos5420 to exynos5.dtsi Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> --- arch/arm/boot/dts/exynos5.dtsi | 10 ++++++++++ arch/arm/boot/dts/exynos5250.dtsi | 6 +----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi index f65e124..80a4630 100644 --- a/arch/arm/boot/dts/exynos5.dtsi +++ b/arch/arm/boot/dts/exynos5.dtsi @@ -108,4 +108,14 @@ interrupts = <0 42 0>; status = "disabled"; }; + + fimd { + compatible = "samsung,exynos5250-fimd"; + interrupt-parent = <&combiner>; + reg = <0x14400000 0x40000>; + interrupt-names = "fifo", "vsync", "lcd_sys"; + interrupts = <18 4>, <18 5>, <18 6>; + status = "disabled"; + }; + }; diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index ef57277..20c32fc 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi @@ -631,12 +631,8 @@ }; fimd { - compatible = "samsung,exynos5250-fimd"; - interrupt-parent = <&combiner>; - reg = <0x14400000 0x40000>; - interrupt-names = "fifo", "vsync", "lcd_sys"; - interrupts = <18 4>, <18 5>, <18 6>; clocks = <&clock 133>, <&clock 339>; clock-names = "sclk_fimd", "fimd"; + status = "okay"; }; }; -- 1.7.9.5
From: Yadwinder Singh Brar <yadi.brar@samsung.com> Add DT nodes for gsc, isp, mfc, disp, mau, g2d and msc PM domains. Signed-off-by: Yadwinder Singh Brar <yadi.brar@samsung.com> --- arch/arm/boot/dts/exynos5420.dtsi | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index 8c54c4b..bd6b310 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi @@ -90,6 +90,41 @@ }; }; + gsc_pd: pd@10044000 { + compatible = "samsung,exynos4210-pd"; + reg = <0x10044000 0x20>; + }; + + isp_pd: pd@10044020 { + compatible = "samsung,exynos4210-pd"; + reg = <0x10044020 0x20>; + }; + + mfc_pd: pd@10044060 { + compatible = "samsung,exynos4210-pd"; + reg = <0x10044060 0x20>; + }; + + disp_pd: pd@100440C0 { + compatible = "samsung,exynos4210-pd"; + reg = <0x100440C0 0x20>; + }; + + mau_pd: pd@100440E0 { + compatible = "samsung,exynos4210-pd"; + reg = <0x100440E0 0x20>; + }; + + g2d_pd: pd@10044100 { + compatible = "samsung,exynos4210-pd"; + reg = <0x10044100 0x20>; + }; + + msc_pd: pd@10044120 { + compatible = "samsung,exynos4210-pd"; + reg = <0x10044120 0x20>; + }; + pinctrl_0: pinctrl@13400000 { compatible = "samsung,exynos5420-pinctrl"; reg = <0x13400000 0x1000>; -- 1.7.9.5
Adds FIMD DT node to exynos5420 based SMDK. Also adds display-timimg information node. Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> --- arch/arm/boot/dts/exynos5420-smdk5420.dts | 18 ++++++++++++++++++ arch/arm/boot/dts/exynos5420.dtsi | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts index 08607df..7c2f477 100644 --- a/arch/arm/boot/dts/exynos5420-smdk5420.dts +++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts @@ -30,4 +30,22 @@ clock-frequency = <24000000>; }; }; + + fimd { + display-timings { + native-mode = <&timing0>; + timing0: timing@0 { + clock-frequency = <50000>; + hactive = <2560>; + vactive = <1600>; + hfront-porch = <48>; + hback-porch = <80>; + hsync-len = <32>; + vback-porch = <16>; + vfront-porch = <8>; + vsync-len = <6>; + }; + }; + }; + }; diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index bd6b310..1f659f4 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi @@ -180,4 +180,12 @@ clocks = <&clock 260>, <&clock 131>; clock-names = "uart", "clk_uart_baud0"; }; + + fimd { + samsung,power-domain = <&disp_pd>; + clocks = <&clock 147>, <&clock 421>; + clock-names = "sclk_fimd", "fimd"; + status = "okay"; + }; + }; -- 1.7.9.5
Moves the properties of DP controller to exynos5.dtsi which are common across exynos5 SoCs like Exynos5250 and Exynos5420. The PHY DP Node is based on Jingoo Han's <jg1.han@samsung.com> patch at https://patchwork.linuxtv.org/patch/19189/ Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> --- arch/arm/boot/dts/exynos5.dtsi | 29 +++++++++++++++++++++++++++++ arch/arm/boot/dts/exynos5250-arndale.dts | 9 --------- arch/arm/boot/dts/exynos5250-smdk5250.dts | 7 ------- arch/arm/boot/dts/exynos5250.dtsi | 12 +----------- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi index 80a4630..682ecf9 100644 --- a/arch/arm/boot/dts/exynos5.dtsi +++ b/arch/arm/boot/dts/exynos5.dtsi @@ -118,4 +118,33 @@ status = "disabled"; }; + dp_phy: video-phy@10040720 { + compatible = "samsung,exynos5250-dp-video-phy"; + reg = <0x10040720 4>; + #phy-cells = <0>; + }; + + dp-controller { + compatible = "samsung,exynos5-dp"; + reg = <0x145b0000 0x1000>; + interrupts = <10 3>; + interrupt-parent = <&combiner>; + #address-cells = <1>; + #size-cells = <0>; + + samsung,color-space = <0>; + samsung,dynamic-range = <0>; + samsung,ycbcr-coeff = <0>; + samsung,color-depth = <1>; + samsung,link-rate = <0x0a>; + samsung,lane-count = <4>; + + phys = <&dp_phy>; + phy-names = "dp"; + + status = "disabled"; + + }; + + }; diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index 96d528d..01eef7d 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts @@ -509,15 +509,6 @@ }; }; - dp-controller { - samsung,color-space = <0>; - samsung,dynamic-range = <0>; - samsung,ycbcr-coeff = <0>; - samsung,color-depth = <1>; - samsung,link-rate = <0x0a>; - samsung,lane-count = <4>; - }; - fimd: fimd@14400000 { display-timings { native-mode = <&timing0>; diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 3b32c26..109f9f7 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -251,13 +251,6 @@ }; dp-controller { - samsung,color-space = <0>; - samsung,dynamic-range = <0>; - samsung,ycbcr-coeff = <0>; - samsung,color-depth = <1>; - samsung,link-rate = <0x0a>; - samsung,lane-count = <4>; - pinctrl-names = "default"; pinctrl-0 = <&dp_hpd>; }; diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 20c32fc..3b5bf13 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi @@ -615,19 +615,9 @@ }; dp-controller { - compatible = "samsung,exynos5-dp"; - reg = <0x145b0000 0x1000>; - interrupts = <10 3>; - interrupt-parent = <&combiner>; clocks = <&clock 342>; clock-names = "dp"; - #address-cells = <1>; - #size-cells = <0>; - - dptx-phy { - reg = <0x10040720>; - samsung,enable-mask = <1>; - }; + status = "okay"; }; fimd { -- 1.7.9.5
Adds DP controller DT node to exynos5420 SoC Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> --- arch/arm/boot/dts/exynos5420.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index 1f659f4..948307c 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi @@ -181,6 +181,12 @@ clock-names = "uart", "clk_uart_baud0"; }; + dp-controller { + clocks = <&clock 412>; + clock-names = "dp"; + status = "okay"; + }; + fimd { samsung,power-domain = <&disp_pd>; clocks = <&clock 147>, <&clock 421>; -- 1.7.9.5
Add pin state information for DP HPD support that requires pin configuration support using pinctrl interface. Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> --- arch/arm/boot/dts/exynos5420-pinctrl.dtsi | 7 +++++++ arch/arm/boot/dts/exynos5420-smdk5420.dts | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi index 5848c42..e695aba 100644 --- a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi +++ b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi @@ -59,6 +59,13 @@ interrupt-controller; #interrupt-cells = <2>; }; + + dp_hpd: dp_hpd { + samsung,pins = "gpx0-7"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samaung,pin-drv = <0>; + }; }; pinctrl@13410000 { diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts index 7c2f477..1237ad2 100644 --- a/arch/arm/boot/dts/exynos5420-smdk5420.dts +++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts @@ -31,6 +31,11 @@ }; }; + dp-controller { + pinctrl-names = "default"; + pinctrl-0 = <&dp_hpd>; + }; + fimd { display-timings { native-mode = <&timing0>; -- 1.7.9.5
Hi Vikas,
Please see my comment inline.
On Monday 29 of July 2013 19:19:26 Vikas Sajjan wrote:
> Moves the properties of FIMD DT node which are common across Exynos5 based
> SoCs like Exynos5250 and Exxynos5420 to exynos5.dtsi
>
> Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org>
> ---
> arch/arm/boot/dts/exynos5.dtsi | 10 ++++++++++
> arch/arm/boot/dts/exynos5250.dtsi | 6 +-----
> 2 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
> index f65e124..80a4630 100644
> --- a/arch/arm/boot/dts/exynos5.dtsi
> +++ b/arch/arm/boot/dts/exynos5.dtsi
> @@ -108,4 +108,14 @@
> interrupts = <0 42 0>;
> status = "disabled";
> };
> +
> + fimd {
I don't know why this node was named incorrectly in original file (probably the
patch adding it did not have enough review), but if you are modifying it
anyway, could you fix it to be conformant to DT conventions?
Whenever there is a reg property inside a node, the node should be named
whatever@addr, where addr is comma separated list of addresses specified in reg
property, in hex, without "0x" prefix.
So in this case this should be at least
fimd@14400000
but ideally
display-controller@14400000
as nodes should have generic names (see ePAPR, paragraph 2.2.2).
Best regards,
Tomasz
Hi Vikas, Yadwinder,
Please see my comments inline.
On Monday 29 of July 2013 19:19:27 Vikas Sajjan wrote:
> From: Yadwinder Singh Brar <yadi.brar@samsung.com>
>
> Add DT nodes for gsc, isp, mfc, disp, mau, g2d and msc PM domains.
>
> Signed-off-by: Yadwinder Singh Brar <yadi.brar@samsung.com>
> ---
> arch/arm/boot/dts/exynos5420.dtsi | 35
> +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5420.dtsi
> b/arch/arm/boot/dts/exynos5420.dtsi index 8c54c4b..bd6b310 100644
> --- a/arch/arm/boot/dts/exynos5420.dtsi
> +++ b/arch/arm/boot/dts/exynos5420.dtsi
> @@ -90,6 +90,41 @@
> };
> };
>
> + gsc_pd: pd@10044000 {
Please use power-domain for node names. We might have "pd" for other Exynos
SoCs, but this needs to be fixed.
Best regards,
Tomasz
Hi Vikas, Please see my comments inline. On Monday 29 of July 2013 19:19:28 Vikas Sajjan wrote: > Adds FIMD DT node to exynos5420 based SMDK. Also adds display-timimg > information node. > > Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> > --- > arch/arm/boot/dts/exynos5420-smdk5420.dts | 18 ++++++++++++++++++ > arch/arm/boot/dts/exynos5420.dtsi | 8 ++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts > b/arch/arm/boot/dts/exynos5420-smdk5420.dts index 08607df..7c2f477 100644 > --- a/arch/arm/boot/dts/exynos5420-smdk5420.dts > +++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts > @@ -30,4 +30,22 @@ > clock-frequency = <24000000>; > }; > }; > + > + fimd { > + display-timings { > + native-mode = <&timing0>; > + timing0: timing@0 { > + clock-frequency = <50000>; > + hactive = <2560>; > + vactive = <1600>; > + hfront-porch = <48>; > + hback-porch = <80>; > + hsync-len = <32>; > + vback-porch = <16>; > + vfront-porch = <8>; > + vsync-len = <6>; > + }; > + }; > + }; > + > }; > diff --git a/arch/arm/boot/dts/exynos5420.dtsi > b/arch/arm/boot/dts/exynos5420.dtsi index bd6b310..1f659f4 100644 > --- a/arch/arm/boot/dts/exynos5420.dtsi > +++ b/arch/arm/boot/dts/exynos5420.dtsi > @@ -180,4 +180,12 @@ > clocks = <&clock 260>, <&clock 131>; > clock-names = "uart", "clk_uart_baud0"; > }; > + > + fimd { > + samsung,power-domain = <&disp_pd>; > + clocks = <&clock 147>, <&clock 421>; > + clock-names = "sclk_fimd", "fimd"; > + status = "okay"; FIMD can't operate without display timings, so status = "okay" doesn't represent real device state here. Please move status override to board dts. I know that dtsi files of Exynos 5 SoCs have "okay" status as default, but this is broken and needs to be fixed, because it moves the responsibility of knowing about all SoC hardware to board dts. Generally, the ePAPR document, chapter 2.3.4, specifies following definition of status property: The status property indicates the operational status of a device. Valid values are listed and defined in the following table. The table specifies following values: “okay” Indicates the device is operational “disabled” Indicates that the device is not presently operational, but it might become operational in the future (for example, something is not plugged in, or switched off). Refer to the device binding for details on what disabled means for a given device. “fail” Indicates that the device is not operational. A serious error was detected in the device, and it is unlikely to become operational without repair. “fail-sss” Indicates that the device is not operational. A serious error was detected in the device and it is unlikely to become operational without repair. The sss portion of the value is specific to the device and indicates the error condition detected. Without all required properties the device will not be operational, so its status should be set to "disabled" and then overriden to "okay" when missing properties are provided (e.g. in board dts). Best regards, Tomasz > + }; > + > };
Hi Vikas,
Please use new address of device tree mailing list for next version of this
series, which is:
devicetree@vger.kernel.org
Best regards,
Tomasz
On Monday 29 of July 2013 19:19:24 Vikas Sajjan wrote:
> This patchset adds DT nodes for FIMD and DP controller for Exynos5420
> based SMDK.
>
> It moves all common properties of FIMD and DP controller DT node specific to
> Exynos5 Socs like 5250 and 5420 to exynos5.dtsi file.
>
> It also adds required PM domain DT nodes for exynos5420.
>
> Is rebased on branch kgene's "for-next"
> https://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/log/?h=
> for-next
>
> The DP PHY DT Node is based on Jingoo Han's inflight patchset at
> http://comments.gmane.org/gmane.linux.drivers.video-input-infrastructure/664
> 35
>
> Vikas Sajjan (6):
> ARM: dts: move display-timimg information inside FIMD DT node for
> exynos5250
> ARM: dts: Update FIMD DT node for Exynos5 SoCs
> ARM: dts: Add FIMD DT node to exynos5420 DTS files
> ARM: dts: Update DP controller DT Node for Exynos5 based SoCs
> ARM: dts: Add DP controller DT node to exynos5420 SoC
> ARM: dts: add pin state information for DP HPD support to Exynos5420
>
> Yadwinder Singh Brar (1):
> ARM: dts: Add basic PM domains for EXYNOS5420
>
> arch/arm/boot/dts/exynos5.dtsi | 39 +++++++++++++++++++++++
> arch/arm/boot/dts/exynos5250-arndale.dts | 9 ------
> arch/arm/boot/dts/exynos5250-smdk5250.dts | 35 +++++++++------------
> arch/arm/boot/dts/exynos5250.dtsi | 18 ++---------
> arch/arm/boot/dts/exynos5420-pinctrl.dtsi | 7 +++++
> arch/arm/boot/dts/exynos5420-smdk5420.dts | 23 ++++++++++++++
> arch/arm/boot/dts/exynos5420.dtsi | 49
> +++++++++++++++++++++++++++++ 7 files changed, 135 insertions(+), 45
> deletions(-)