Re: [RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-19 Thread Sebastian Reichel
Hi Tony,

On Mon, Nov 18, 2019 at 02:52:09PM -0800, Tony Lindgren wrote:
> * Sebastian Reichel  [191118 15:03]:
> > On Mon, Nov 18, 2019 at 03:37:12PM +0100, H. Nikolaus Schaller wrote:
> > > > Am 18.11.2019 um 15:33 schrieb Sebastian Reichel 
> > > > :
> > > > On Mon, Nov 18, 2019 at 03:05:07PM +0200, Tomi Valkeinen wrote:
> > > >> On 17/11/2019 04:39, Sebastian Reichel wrote:
> > > >>> The standard binding for DSI requires, that the channel number
> > > >>> of the panel is encoded in DT. This adds the channel number in
> > > >>> all OMAP3-5 boards, in preparation for using common infrastructure.
> > > >>> 
> > > >>> Signed-off-by: Sebastian Reichel 
> > > >>> ---
> > > >>>  .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
> > > >>>  arch/arm/boot/dts/omap3-n950.dts| 3 ++-
> > > >>>  arch/arm/boot/dts/omap3.dtsi| 3 +++
> > > >>>  arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
> > > >>>  arch/arm/boot/dts/omap4-sdp.dts | 6 
> > > >>> --
> > > >>>  arch/arm/boot/dts/omap4.dtsi| 6 
> > > >>> ++
> > > >>>  arch/arm/boot/dts/omap5.dtsi| 6 
> > > >>> ++
> > > >>>  7 files changed, 26 insertions(+), 5 deletions(-)
> > > >> 
> > > >> Is this required only in the .txt, or also by the driver? This does 
> > > >> break
> > > >> backward compatibility with the dtbs, and there's always someone who 
> > > >> won't
> > > >> like it.
> > > > 
> > > > I add a compatible string for the Droid 4 panel in addition to the
> > > > generic one, which is not really required and just a precaution in
> > > > case we need some quirks in the future.
> > > > 
> > > > But I had to add the DSI channel to DT, which is required to follow
> > > > the standard DSI bindings. We cannot use the generic infrastructure
> > > > without this change. Technically it should have been there all the
> > > > time, it is only working because it is currently hardcoded to 0 in
> > > > the panel driver.
> > > 
> > > Is it possible to change it to default to channel <0> if reg is not
> > > specified?
> > 
> > Currently nodes without reg property are skipped by of_mipi_dsi_device_add()
> > and of_mipi_dsi_device_add() fails if reg node is missing. Technically
> > it should be possible to default to channel 0 there. That affects all
> > platforms, though. Considering the small amount of boards affected, I think
> > its better to just fix the DT. Also the fixed DT does not make problems
> > with older kernels and can be backported.
> 
> You might be able to do a local fixup at driver probe time using
> of_add_property(). See for example pcs_quirk_missing_pinctrl_cells()
> I added earlier because of similar issues.

That sounds like a good plan. I suppose it could be added for some
kernel releases with a WARN() asking the user to update their DT.

-- Sebastian


signature.asc
Description: PGP signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-19 Thread Sebastian Reichel
Hi,

On Mon, Nov 18, 2019 at 03:37:12PM +0100, H. Nikolaus Schaller wrote:
> > Am 18.11.2019 um 15:33 schrieb Sebastian Reichel 
> > :
> > On Mon, Nov 18, 2019 at 03:05:07PM +0200, Tomi Valkeinen wrote:
> >> On 17/11/2019 04:39, Sebastian Reichel wrote:
> >>> The standard binding for DSI requires, that the channel number
> >>> of the panel is encoded in DT. This adds the channel number in
> >>> all OMAP3-5 boards, in preparation for using common infrastructure.
> >>> 
> >>> Signed-off-by: Sebastian Reichel 
> >>> ---
> >>>  .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
> >>>  arch/arm/boot/dts/omap3-n950.dts| 3 ++-
> >>>  arch/arm/boot/dts/omap3.dtsi| 3 +++
> >>>  arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
> >>>  arch/arm/boot/dts/omap4-sdp.dts | 6 --
> >>>  arch/arm/boot/dts/omap4.dtsi| 6 ++
> >>>  arch/arm/boot/dts/omap5.dtsi| 6 ++
> >>>  7 files changed, 26 insertions(+), 5 deletions(-)
> >> 
> >> Is this required only in the .txt, or also by the driver? This does break
> >> backward compatibility with the dtbs, and there's always someone who won't
> >> like it.
> > 
> > I add a compatible string for the Droid 4 panel in addition to the
> > generic one, which is not really required and just a precaution in
> > case we need some quirks in the future.
> > 
> > But I had to add the DSI channel to DT, which is required to follow
> > the standard DSI bindings. We cannot use the generic infrastructure
> > without this change. Technically it should have been there all the
> > time, it is only working because it is currently hardcoded to 0 in
> > the panel driver.
> 
> Is it possible to change it to default to channel <0> if reg is not
> specified?

Currently nodes without reg property are skipped by of_mipi_dsi_device_add()
and of_mipi_dsi_device_add() fails if reg node is missing. Technically
it should be possible to default to channel 0 there. That affects all
platforms, though. Considering the small amount of boards affected, I think
its better to just fix the DT. Also the fixed DT does not make problems
with older kernels and can be backported.

> > TLDR: Yes, it is required by the driver and it does break backward
> > compatibility for N950 (panel does not yet work on mainline, since
> > the OMAP3 quirks are missing in the omapdrm DSI code), omap4-sdp (
> > untested, I do not know if its working) and Droid 4 (known to be
> > working with current mainline code, most likely people update their
> > DT anyways).

-- Sebastian


signature.asc
Description: PGP signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-19 Thread Tony Lindgren
* Sebastian Reichel  [191118 15:03]:
> On Mon, Nov 18, 2019 at 03:37:12PM +0100, H. Nikolaus Schaller wrote:
> > > Am 18.11.2019 um 15:33 schrieb Sebastian Reichel 
> > > :
> > > On Mon, Nov 18, 2019 at 03:05:07PM +0200, Tomi Valkeinen wrote:
> > >> On 17/11/2019 04:39, Sebastian Reichel wrote:
> > >>> The standard binding for DSI requires, that the channel number
> > >>> of the panel is encoded in DT. This adds the channel number in
> > >>> all OMAP3-5 boards, in preparation for using common infrastructure.
> > >>> 
> > >>> Signed-off-by: Sebastian Reichel 
> > >>> ---
> > >>>  .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
> > >>>  arch/arm/boot/dts/omap3-n950.dts| 3 ++-
> > >>>  arch/arm/boot/dts/omap3.dtsi| 3 +++
> > >>>  arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
> > >>>  arch/arm/boot/dts/omap4-sdp.dts | 6 --
> > >>>  arch/arm/boot/dts/omap4.dtsi| 6 ++
> > >>>  arch/arm/boot/dts/omap5.dtsi| 6 ++
> > >>>  7 files changed, 26 insertions(+), 5 deletions(-)
> > >> 
> > >> Is this required only in the .txt, or also by the driver? This does break
> > >> backward compatibility with the dtbs, and there's always someone who 
> > >> won't
> > >> like it.
> > > 
> > > I add a compatible string for the Droid 4 panel in addition to the
> > > generic one, which is not really required and just a precaution in
> > > case we need some quirks in the future.
> > > 
> > > But I had to add the DSI channel to DT, which is required to follow
> > > the standard DSI bindings. We cannot use the generic infrastructure
> > > without this change. Technically it should have been there all the
> > > time, it is only working because it is currently hardcoded to 0 in
> > > the panel driver.
> > 
> > Is it possible to change it to default to channel <0> if reg is not
> > specified?
> 
> Currently nodes without reg property are skipped by of_mipi_dsi_device_add()
> and of_mipi_dsi_device_add() fails if reg node is missing. Technically
> it should be possible to default to channel 0 there. That affects all
> platforms, though. Considering the small amount of boards affected, I think
> its better to just fix the DT. Also the fixed DT does not make problems
> with older kernels and can be backported.

You might be able to do a local fixup at driver probe time using
of_add_property(). See for example pcs_quirk_missing_pinctrl_cells()
I added earlier because of similar issues.

Regards,

Tony
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-19 Thread H. Nikolaus Schaller

> Am 18.11.2019 um 15:33 schrieb Sebastian Reichel 
> :
> 
> Hi,
> 
> On Mon, Nov 18, 2019 at 03:05:07PM +0200, Tomi Valkeinen wrote:
>> On 17/11/2019 04:39, Sebastian Reichel wrote:
>>> The standard binding for DSI requires, that the channel number
>>> of the panel is encoded in DT. This adds the channel number in
>>> all OMAP3-5 boards, in preparation for using common infrastructure.
>>> 
>>> Signed-off-by: Sebastian Reichel 
>>> ---
>>>  .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
>>>  arch/arm/boot/dts/omap3-n950.dts| 3 ++-
>>>  arch/arm/boot/dts/omap3.dtsi| 3 +++
>>>  arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
>>>  arch/arm/boot/dts/omap4-sdp.dts | 6 --
>>>  arch/arm/boot/dts/omap4.dtsi| 6 ++
>>>  arch/arm/boot/dts/omap5.dtsi| 6 ++
>>>  7 files changed, 26 insertions(+), 5 deletions(-)
>> 
>> Is this required only in the .txt, or also by the driver? This does break
>> backward compatibility with the dtbs, and there's always someone who won't
>> like it.
> 
> I add a compatible string for the Droid 4 panel in addition to the
> generic one, which is not really required and just a precaution in
> case we need some quirks in the future.
> 
> But I had to add the DSI channel to DT, which is required to follow
> the standard DSI bindings. We cannot use the generic infrastructure
> without this change. Technically it should have been there all the
> time, it is only working because it is currently hardcoded to 0 in
> the panel driver.

Is it possible to change it to default to channel <0> if reg is not
specified?

> 
> TLDR: Yes, it is required by the driver and it does break backward
> compatibility for N950 (panel does not yet work on mainline, since
> the OMAP3 quirks are missing in the omapdrm DSI code), omap4-sdp (
> untested, I do not know if its working) and Droid 4 (known to be
> working with current mainline code, most likely people update their
> DT anyways).
> 
> -- Sebastian

BR,
Nikolaus

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-19 Thread Sebastian Reichel
Hi,

On Mon, Nov 18, 2019 at 03:05:07PM +0200, Tomi Valkeinen wrote:
> On 17/11/2019 04:39, Sebastian Reichel wrote:
> > The standard binding for DSI requires, that the channel number
> > of the panel is encoded in DT. This adds the channel number in
> > all OMAP3-5 boards, in preparation for using common infrastructure.
> > 
> > Signed-off-by: Sebastian Reichel 
> > ---
> >   .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
> >   arch/arm/boot/dts/omap3-n950.dts| 3 ++-
> >   arch/arm/boot/dts/omap3.dtsi| 3 +++
> >   arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
> >   arch/arm/boot/dts/omap4-sdp.dts | 6 --
> >   arch/arm/boot/dts/omap4.dtsi| 6 ++
> >   arch/arm/boot/dts/omap5.dtsi| 6 ++
> >   7 files changed, 26 insertions(+), 5 deletions(-)
> 
> Is this required only in the .txt, or also by the driver? This does break
> backward compatibility with the dtbs, and there's always someone who won't
> like it.

I add a compatible string for the Droid 4 panel in addition to the
generic one, which is not really required and just a precaution in
case we need some quirks in the future.

But I had to add the DSI channel to DT, which is required to follow
the standard DSI bindings. We cannot use the generic infrastructure
without this change. Technically it should have been there all the
time, it is only working because it is currently hardcoded to 0 in
the panel driver.

TLDR: Yes, it is required by the driver and it does break backward
compatibility for N950 (panel does not yet work on mainline, since
the OMAP3 quirks are missing in the omapdrm DSI code), omap4-sdp (
untested, I do not know if its working) and Droid 4 (known to be
working with current mainline code, most likely people update their
DT anyways).

-- Sebastian


signature.asc
Description: PGP signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-18 Thread Tomi Valkeinen

On 17/11/2019 04:39, Sebastian Reichel wrote:

The standard binding for DSI requires, that the channel number
of the panel is encoded in DT. This adds the channel number in
all OMAP3-5 boards, in preparation for using common infrastructure.

Signed-off-by: Sebastian Reichel 
---
  .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
  arch/arm/boot/dts/omap3-n950.dts| 3 ++-
  arch/arm/boot/dts/omap3.dtsi| 3 +++
  arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
  arch/arm/boot/dts/omap4-sdp.dts | 6 --
  arch/arm/boot/dts/omap4.dtsi| 6 ++
  arch/arm/boot/dts/omap5.dtsi| 6 ++
  7 files changed, 26 insertions(+), 5 deletions(-)


Is this required only in the .txt, or also by the driver? This does 
break backward compatibility with the dtbs, and there's always someone 
who won't like it.


 Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[RFCv1 11/42] ARM: dts: omap: add channel to DSI panels

2019-11-17 Thread Sebastian Reichel
The standard binding for DSI requires, that the channel number
of the panel is encoded in DT. This adds the channel number in
all OMAP3-5 boards, in preparation for using common infrastructure.

Signed-off-by: Sebastian Reichel 
---
 .../devicetree/bindings/display/panel/panel-dsi-cm.txt  | 4 +++-
 arch/arm/boot/dts/omap3-n950.dts| 3 ++-
 arch/arm/boot/dts/omap3.dtsi| 3 +++
 arch/arm/boot/dts/omap4-droid4-xt894.dts| 3 ++-
 arch/arm/boot/dts/omap4-sdp.dts | 6 --
 arch/arm/boot/dts/omap4.dtsi| 6 ++
 arch/arm/boot/dts/omap5.dtsi| 6 ++
 7 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-dsi-cm.txt 
b/Documentation/devicetree/bindings/display/panel/panel-dsi-cm.txt
index dce48eb9db57..f92d5c9adfc5 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-dsi-cm.txt
+++ b/Documentation/devicetree/bindings/display/panel/panel-dsi-cm.txt
@@ -3,6 +3,7 @@ Generic MIPI DSI Command Mode Panel
 
 Required properties:
 - compatible: "panel-dsi-cm"
+- reg: DSI channel number
 
 Optional properties:
 - label: a symbolic name for the panel
@@ -15,9 +16,10 @@ Required nodes:
 Example
 ---
 
-lcd0: display {
+lcd0: panel@0 {
compatible = "tpo,taal", "panel-dsi-cm";
label = "lcd0";
+   reg = <0>;
 
reset-gpios = < 6 GPIO_ACTIVE_HIGH>;
 
diff --git a/arch/arm/boot/dts/omap3-n950.dts b/arch/arm/boot/dts/omap3-n950.dts
index 9886bf8b90ab..d1dfafde351e 100644
--- a/arch/arm/boot/dts/omap3-n950.dts
+++ b/arch/arm/boot/dts/omap3-n950.dts
@@ -225,8 +225,9 @@
};
};
 
-   lcd0: display {
+   lcd0: panel@0 {
compatible = "nokia,himalaya", "panel-dsi-cm";
+   reg = <0>;
label = "lcd0";
 
pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 4043ecb38016..b872b933f2cb 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -771,6 +771,9 @@
ti,hwmods = "dss_dsi1";
clocks = <_alwon_fck>, <_alwon_fck>;
clock-names = "fck", "sys_clk";
+
+   #address-cells = <1>;
+   #size-cells = <0>;
};
 
rfbi: encoder@48050800 {
diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts 
b/arch/arm/boot/dts/omap4-droid4-xt894.dts
index a40fe8d49da6..6af0a9288940 100644
--- a/arch/arm/boot/dts/omap4-droid4-xt894.dts
+++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts
@@ -202,8 +202,9 @@
};
};
 
-   lcd0: display {
+   lcd0: panel@0 {
compatible = "panel-dsi-cm";
+   reg = <0>;
label = "lcd0";
vddi-supply = <_regulator>;
reset-gpios = < 5 GPIO_ACTIVE_HIGH>;  /* gpio101 */
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index 91480ac1f328..8a8307517dab 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -662,8 +662,9 @@
};
};
 
-   lcd0: display {
+   lcd0: panel@0 {
compatible = "tpo,taal", "panel-dsi-cm";
+   reg = <0>;
label = "lcd0";
 
reset-gpios = < 6 GPIO_ACTIVE_HIGH>;  /* 102 */
@@ -687,8 +688,9 @@
};
};
 
-   lcd1: display {
+   lcd1: panel@0 {
compatible = "tpo,taal", "panel-dsi-cm";
+   reg = <0>;
label = "lcd1";
 
reset-gpios = < 8 GPIO_ACTIVE_HIGH>;  /* 104 */
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 7cc95bc1598b..a0807cd90eff 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -403,6 +403,9 @@
clocks = <_dss_clkctrl 
OMAP4_DSS_CORE_CLKCTRL 8>,
 <_dss_clkctrl 
OMAP4_DSS_CORE_CLKCTRL 10>;
clock-names = "fck", "sys_clk";
+
+   #address-cells = <1>;
+   #size-cells = <0>;
};
 
dsi2: encoder@58005000 {
@@ -417,6 +420,9 @@
clocks = <_dss_clkctrl 
OMAP4_DSS_CORE_CLKCTRL 8>,
 <_dss_clkctrl 
OMAP4_DSS_CORE_CLKCTRL 10>;
clock-names = "fck", "sys_clk";
+
+   #address-cells = <1>;
+   #size-cells = <0>;
};
 
hdmi: encoder@58006000 {
diff --git a/arch/arm/boot/dts/omap5.dtsi