diff mbox series

[1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

Message ID 20240524103506.187277-2-ryan@testtoast.com (mailing list archive)
State New, archived
Headers show
Series Add WL-355608-A8 panel | expand

Commit Message

Ryan Walklin May 24, 2024, 10:33 a.m. UTC
The WL-355608-A8 is a 3.5" 640x480@60Hz RGB LCD display from an unknown
OEM, used in a number of handheld gaming devices made by Anbernic.

Add a device tree binding for the panel.

Signed-off-by: Ryan Walklin <ryan@testtoast.com>
---
 .../bindings/display/panel/wl-355608-a8.yaml  | 68 +++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml

Comments

Conor Dooley May 24, 2024, 7:10 p.m. UTC | #1
On Fri, May 24, 2024 at 10:33:13PM +1200, Ryan Walklin wrote:
> The WL-355608-A8 is a 3.5" 640x480@60Hz RGB LCD display from an unknown
> OEM, used in a number of handheld gaming devices made by Anbernic.
> 
> Add a device tree binding for the panel.
> 
> Signed-off-by: Ryan Walklin <ryan@testtoast.com>
> ---
>  .../bindings/display/panel/wl-355608-a8.yaml  | 68 +++++++++++++++++++
>  1 file changed, 68 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml b/Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml
> new file mode 100644
> index 000000000..af12303e2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/wl-355608-a8.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: WL-355608-A8 3.5" (640x480 pixels) 24-bit IPS LCD panel
> +
> +maintainers:
> +  - Ryan Walklin <ryan@testtoast.com>
> +
> +allOf:
> +  - $ref: panel-common.yaml#
> +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +properties:
> +  compatible:
> +    const: wl-355608-a8

You're missing a vendor prefix here. And when you add it, update the
filename to match.

> +
> +  reg:
> +    maxItems: 1
> +
> +  spi-3wire: true
> +
> +required:
> +  - compatible
> +  - reg
> +  - port
> +  - power-supply
> +  - reset-gpios
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +

> +    spi_lcd: spi {
> +        compatible = "spi-gpio";
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        sck-gpios = <&pio 8 9 GPIO_ACTIVE_HIGH>; // PI9
> +        mosi-gpios = <&pio 8 10 GPIO_ACTIVE_HIGH>; // PI10
> +        cs-gpios = <&pio 8 8 GPIO_ACTIVE_HIGH>; // PI8
> +        num-chipselects = <1>;

All of this is not needed in the example, all you need to have here is:

spi {
    #address-cells = <1>;
    #size-cells = <0>;

> +
> +        panel: panel@0 {

This "panel" label is not used, you should drop it.

> +            compatible = "wl_355608_a8";

This doesn't match what you documented, be sure to run dt_binding_check.

> +            reg = <0>;
> +
> +            spi-3wire;
> +            spi-max-frequency = <3125000>;
> +
> +            reset-gpios = <&pio 8 14 GPIO_ACTIVE_LOW>; // PI14
> +
> +            backlight = <&backlight>;
> +            power-supply = <&reg_lcd>;
> +            pinctrl-0 = <&lcd0_rgb888_pins>;
> +            pinctrl-names = "default";
> +
> +            port {
> +            	panel_in_rgb: endpoint {

Neither is this label afaict.

Thanks,
Conor.

> +                    remote-endpoint = <&tcon_lcd0_out_lcd>;
> +                };
> +            };
> +        };
> +    };
> -- 
> 2.45.1
>
Ryan Walklin May 24, 2024, 9:26 p.m. UTC | #2
On Sat, 25 May 2024, at 7:10 AM, Conor Dooley wrote:

Thanks for the review!

>> +
>> +properties:
>> +  compatible:
>> +    const: wl-355608-a8
>
> You're missing a vendor prefix here. And when you add it, update the
> filename to match.

Thanks, I don't actually know the vendor, would it be acceptable to just use "wl"?

>> +
>> +        sck-gpios = <&pio 8 9 GPIO_ACTIVE_HIGH>; // PI9
>> +        mosi-gpios = <&pio 8 10 GPIO_ACTIVE_HIGH>; // PI10
>> +        cs-gpios = <&pio 8 8 GPIO_ACTIVE_HIGH>; // PI8
>> +        num-chipselects = <1>;
>
> All of this is not needed in the example, all you need to have here is:
>
> spi {
>     #address-cells = <1>;
>     #size-cells = <0>;
>
Thanks, will clean it up.
>> +
>> +        panel: panel@0 {
>
> This "panel" label is not used, you should drop it.
>
Noted, ta.
>> +            compatible = "wl_355608_a8";
>
> This doesn't match what you documented, be sure to run dt_binding_check.

Thanks, changed underscore to dash mid-patch and neglected to fix all the examples (and the subsequent code patch it seems. Will correct. Is there a preference one way or another? 

>
>> +            reg = <0>;
>> +
>> +            spi-3wire;
>> +            spi-max-frequency = <3125000>;
>> +
>> +            reset-gpios = <&pio 8 14 GPIO_ACTIVE_LOW>; // PI14
>> +
>> +            backlight = <&backlight>;
>> +            power-supply = <&reg_lcd>;
>> +            pinctrl-0 = <&lcd0_rgb888_pins>;
>> +            pinctrl-names = "default";
>> +
>> +            port {
>> +            	panel_in_rgb: endpoint {
>
> Neither is this label afaict.
>
> Thanks,
> Conor.


Regards,

Ryan
Conor Dooley May 25, 2024, 3:22 p.m. UTC | #3
On Sat, May 25, 2024 at 09:26:48AM +1200, Ryan Walklin wrote:
> On Sat, 25 May 2024, at 7:10 AM, Conor Dooley wrote:
> 
> Thanks for the review!
> 
> >> +
> >> +properties:
> >> +  compatible:
> >> +    const: wl-355608-a8
> >
> > You're missing a vendor prefix here. And when you add it, update the
> > filename to match.
> 
> Thanks, I don't actually know the vendor, would it be acceptable to just use "wl"?

You mean, "wl,355608-a8"? I did a wee bit of googling of the thing, and
yeah, there's nothing that a surface level search turns up for it -
other than they appeared to have a logo with a W in a circle...
I think if we genuinely do not know what the vendor is then we just
don't have a prefix.

> >> +            compatible = "wl_355608_a8";
> >
> > This doesn't match what you documented, be sure to run dt_binding_check.
> 
> Thanks, changed underscore to dash mid-patch and neglected to fix all
> the examples (and the subsequent code patch it seems. Will correct.
> Is there a preference one way or another? 

Not _s :)
Ryan Walklin May 25, 2024, 9:41 p.m. UTC | #4
On Sun, 26 May 2024, at 3:22 AM, Conor Dooley wrote:
>> 
>> Thanks, I don't actually know the vendor, would it be acceptable to just use "wl"?
>
> You mean, "wl,355608-a8"? I did a wee bit of googling of the thing, and
> yeah, there's nothing that a surface level search turns up for it -
> other than they appeared to have a logo with a W in a circle...
> I think if we genuinely do not know what the vendor is then we just
> don't have a prefix.

I was going to go with "wl,wl-355608-a8" as the whole string seems to be the product/serial code, but happy to just not have the vendor prefix as per my V1 if that's acceptable, seems pretty obscure as you've found.
>
>> >> +            compatible = "wl_355608_a8";
> Not _s :)
Noted, ta.

Regards,

Ryan
Hironori KIKUCHI May 25, 2024, 10:49 p.m. UTC | #5
Hi Ryan,

How about to use "anbernic,rg35xx-panel" ?
It's not generic though, some other drivers use similar strings already.

Regards,
kikuchan.
Ryan Walklin May 25, 2024, 11:09 p.m. UTC | #6
On Sun, 26 May 2024, at 10:49 AM, きくちゃんさん wrote:
> Hi Ryan,
>
> How about to use "anbernic,rg35xx-panel" ?
> It's not generic though, some other drivers use similar strings already.

Could do, although I think it is used for more than one of the Anbernic devices, so "anbernic,wl-355608-a8" might be best. Happy to go with whatever approach is preferred.

>
> Regards,
> kikuchan.

Regards,

Ryan
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml b/Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml
new file mode 100644
index 000000000..af12303e2
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/wl-355608-a8.yaml
@@ -0,0 +1,68 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/wl-355608-a8.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: WL-355608-A8 3.5" (640x480 pixels) 24-bit IPS LCD panel
+
+maintainers:
+  - Ryan Walklin <ryan@testtoast.com>
+
+allOf:
+  - $ref: panel-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    const: wl-355608-a8
+
+  reg:
+    maxItems: 1
+
+  spi-3wire: true
+
+required:
+  - compatible
+  - reg
+  - port
+  - power-supply
+  - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi_lcd: spi {
+        compatible = "spi-gpio";
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sck-gpios = <&pio 8 9 GPIO_ACTIVE_HIGH>; // PI9
+        mosi-gpios = <&pio 8 10 GPIO_ACTIVE_HIGH>; // PI10
+        cs-gpios = <&pio 8 8 GPIO_ACTIVE_HIGH>; // PI8
+        num-chipselects = <1>;
+
+        panel: panel@0 {
+            compatible = "wl_355608_a8";
+            reg = <0>;
+
+            spi-3wire;
+            spi-max-frequency = <3125000>;
+
+            reset-gpios = <&pio 8 14 GPIO_ACTIVE_LOW>; // PI14
+
+            backlight = <&backlight>;
+            power-supply = <&reg_lcd>;
+            pinctrl-0 = <&lcd0_rgb888_pins>;
+            pinctrl-names = "default";
+
+            port {
+            	panel_in_rgb: endpoint {
+                    remote-endpoint = <&tcon_lcd0_out_lcd>;
+                };
+            };
+        };
+    };