2023-05-23 08:27:20

by Johannes Zink

[permalink] [raw]
Subject: [PATCH v2 2/3] dt-bindings: display: simple: support non-default data-mapping

Some Displays support more than just a single default lvds data mapping,
which can be used to run displays on only 3 LVDS lanes in the jeida-18
data-mapping mode.

Add an optional data-mapping property to allow overriding the default
data mapping. As it does not generally apply to any display and bus: use
it selectively on the innolux,g101ice-l01, which supports changing the
data mapping via a strapping pin.

Signed-off-by: Johannes Zink <[email protected]>

---

Changes:

v1 -> v2: - worked in Rob's review findings (thanks for reviewing my
work): use extracted common property instead of duplicating
the property
- refined commit message
- add an example dts for automated checking
---
.../bindings/display/panel/panel-simple.yaml | 26 +++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
index ec50dd268314..698301c8c920 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -21,9 +21,9 @@ description: |

allOf:
- $ref: panel-common.yaml#
+ - $ref: ../lvds-data-mapping.yaml#

properties:
-
compatible:
enum:
# compatible must be listed in alphabetical order, ordered by compatible.
@@ -353,6 +353,17 @@ properties:
power-supply: true
no-hpd: true
hpd-gpios: true
+ data-mapping: true
+
+if:
+ not:
+ properties:
+ compatible:
+ contains:
+ const: innolux,g101ice-l01
+then:
+ properties:
+ data-mapping: false

additionalProperties: false

@@ -372,3 +383,16 @@ examples:
};
};
};
+ - |
+ panel_lvds: panel-lvds {
+ compatible = "innolux,g101ice-l01";
+ power-supply = <&vcc_lcd_reg>;
+
+ data-mapping = "jeida-24";
+
+ port {
+ panel_in_lvds: endpoint {
+ remote-endpoint = <&ltdc_out_lvds>;
+ };
+ };
+ };

--
2.39.2



2023-05-23 17:28:18

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] dt-bindings: display: simple: support non-default data-mapping

On Tue, May 23, 2023 at 10:19:42AM +0200, Johannes Zink wrote:
> Some Displays support more than just a single default lvds data mapping,
> which can be used to run displays on only 3 LVDS lanes in the jeida-18
> data-mapping mode.
>
> Add an optional data-mapping property to allow overriding the default
> data mapping. As it does not generally apply to any display and bus: use
> it selectively on the innolux,g101ice-l01, which supports changing the
> data mapping via a strapping pin.
>
> Signed-off-by: Johannes Zink <[email protected]>
>
> ---
>
> Changes:
>
> v1 -> v2: - worked in Rob's review findings (thanks for reviewing my
> work): use extracted common property instead of duplicating
> the property

That looks to be true (and Rob's AFK at the moment, hence unable to reply
to your ping) so,
Reviewed-by: Conor Dooley <[email protected]>

Thanks,
Conor.

> - refined commit message
> - add an example dts for automated checking
> ---
> .../bindings/display/panel/panel-simple.yaml | 26 +++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> index ec50dd268314..698301c8c920 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> @@ -21,9 +21,9 @@ description: |
>
> allOf:
> - $ref: panel-common.yaml#
> + - $ref: ../lvds-data-mapping.yaml#
>
> properties:
> -
> compatible:
> enum:
> # compatible must be listed in alphabetical order, ordered by compatible.
> @@ -353,6 +353,17 @@ properties:
> power-supply: true
> no-hpd: true
> hpd-gpios: true
> + data-mapping: true
> +
> +if:
> + not:
> + properties:
> + compatible:
> + contains:
> + const: innolux,g101ice-l01
> +then:
> + properties:
> + data-mapping: false
>
> additionalProperties: false
>
> @@ -372,3 +383,16 @@ examples:
> };
> };
> };
> + - |
> + panel_lvds: panel-lvds {
> + compatible = "innolux,g101ice-l01";
> + power-supply = <&vcc_lcd_reg>;
> +
> + data-mapping = "jeida-24";
> +
> + port {
> + panel_in_lvds: endpoint {
> + remote-endpoint = <&ltdc_out_lvds>;
> + };
> + };
> + };
>
> --
> 2.39.2
>


Attachments:
(No filename) (2.48 kB)
signature.asc (235.00 B)
Download all attachments

2023-06-02 15:40:53

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] dt-bindings: display: simple: support non-default data-mapping

Hi Johannes,

Thank you for the patch.

On Tue, May 23, 2023 at 10:19:42AM +0200, Johannes Zink wrote:
> Some Displays support more than just a single default lvds data mapping,

s/lvds/LVDS/

> which can be used to run displays on only 3 LVDS lanes in the jeida-18
> data-mapping mode.
>
> Add an optional data-mapping property to allow overriding the default
> data mapping. As it does not generally apply to any display and bus: use

s/bus:/bus,/

> it selectively on the innolux,g101ice-l01, which supports changing the
> data mapping via a strapping pin.
>
> Signed-off-by: Johannes Zink <[email protected]>
> ---
>
> Changes:
>
> v1 -> v2: - worked in Rob's review findings (thanks for reviewing my
> work): use extracted common property instead of duplicating
> the property
> - refined commit message
> - add an example dts for automated checking
> ---
> .../bindings/display/panel/panel-simple.yaml | 26 +++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> index ec50dd268314..698301c8c920 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
> @@ -21,9 +21,9 @@ description: |
>
> allOf:
> - $ref: panel-common.yaml#
> + - $ref: ../lvds-data-mapping.yaml#
>
> properties:
> -
> compatible:
> enum:
> # compatible must be listed in alphabetical order, ordered by compatible.
> @@ -353,6 +353,17 @@ properties:
> power-supply: true
> no-hpd: true
> hpd-gpios: true
> + data-mapping: true

As the property is optional, don't you need a default value ?

> +
> +if:
> + not:
> + properties:
> + compatible:
> + contains:
> + const: innolux,g101ice-l01
> +then:
> + properties:
> + data-mapping: false
>
> additionalProperties: false
>
> @@ -372,3 +383,16 @@ examples:
> };
> };
> };
> + - |
> + panel_lvds: panel-lvds {
> + compatible = "innolux,g101ice-l01";
> + power-supply = <&vcc_lcd_reg>;
> +
> + data-mapping = "jeida-24";
> +
> + port {
> + panel_in_lvds: endpoint {
> + remote-endpoint = <&ltdc_out_lvds>;
> + };
> + };
> + };
>

--
Regards,

Laurent Pinchart

2023-07-28 09:03:24

by Johannes Zink

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] dt-bindings: display: simple: support non-default data-mapping

Hi Laurent,

thank you for your review.

On 6/2/23 17:35, Laurent Pinchart wrote:
> Hi Johannes,
>
> Thank you for the patch.
>
> On Tue, May 23, 2023 at 10:19:42AM +0200, Johannes Zink wrote:
>> Some Displays support more than just a single default lvds data mapping,
>
> s/lvds/LVDS/

ack, gonna fix in V3

>
>> which can be used to run displays on only 3 LVDS lanes in the jeida-18
>> data-mapping mode.
>>
>> Add an optional data-mapping property to allow overriding the default
>> data mapping. As it does not generally apply to any display and bus: use
>
> s/bus:/bus,/

ack, gonna fix in V3

>
>> it selectively on the innolux,g101ice-l01, which supports changing the
>> data mapping via a strapping pin.
>>
>> Signed-off-by: Johannes Zink <[email protected]>
>> ---
>>
>> Changes:
>>
>> v1 -> v2: - worked in Rob's review findings (thanks for reviewing my
>> work): use extracted common property instead of duplicating
>> the property
>> - refined commit message
>> - add an example dts for automated checking
>> ---
>> .../bindings/display/panel/panel-simple.yaml | 26 +++++++++++++++++++++-
>> 1 file changed, 25 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
>> index ec50dd268314..698301c8c920 100644
>> --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
>> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
>> @@ -21,9 +21,9 @@ description: |
>>
>> allOf:
>> - $ref: panel-common.yaml#
>> + - $ref: ../lvds-data-mapping.yaml#
>>
>> properties:
>> -
>> compatible:
>> enum:
>> # compatible must be listed in alphabetical order, ordered by compatible.
>> @@ -353,6 +353,17 @@ properties:
>> power-supply: true
>> no-hpd: true
>> hpd-gpios: true
>> + data-mapping: true
>
> As the property is optional, don't you need a default value ?

as the simple-bus implicitely assumes default data mappings for LVDS panels, I
think this is not necessary. If the property is not used in a DT, the default
data mapping is used.

Best regards
Johannes

>
>> +
>> +if:
>> + not:
>> + properties:
>> + compatible:
>> + contains:
>> + const: innolux,g101ice-l01
>> +then:
>> + properties:
>> + data-mapping: false
>>
>> additionalProperties: false
>>
>> @@ -372,3 +383,16 @@ examples:
>> };
>> };
>> };
>> + - |
>> + panel_lvds: panel-lvds {
>> + compatible = "innolux,g101ice-l01";
>> + power-supply = <&vcc_lcd_reg>;
>> +
>> + data-mapping = "jeida-24";
>> +
>> + port {
>> + panel_in_lvds: endpoint {
>> + remote-endpoint = <&ltdc_out_lvds>;
>> + };
>> + };
>> + };
>>
>

--
Pengutronix e.K. | Johannes Zink |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686| Fax: +49-5121-206917-5555 |