diff mbox series

drm/panel: Add DT bindings for Samsung LMS380KF01

Message ID 20210624223743.2486302-1-linus.walleij@linaro.org (mailing list archive)
State New, archived
Headers show
Series drm/panel: Add DT bindings for Samsung LMS380KF01 | expand

Commit Message

Linus Walleij June 24, 2021, 10:37 p.m. UTC
This adds device tree bindings for the Samsung Mobile Displays
LMS380KF01 RGB DPI display panel.

Cc: devicetree@vger.kernel.org
Cc: phone-devel@vger.kernel.org
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../display/panel/samsung,lms380kf01.yaml     | 96 +++++++++++++++++++
 1 file changed, 96 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/samsung,lms380kf01.yaml

Comments

Doug Anderson June 25, 2021, 3:58 p.m. UTC | #1
Hi,

On Thu, Jun 24, 2021 at 3:40 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> +  spi-cpha:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: inherited as a SPI client node. Must be set.
> +
> +  spi-cpol:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: inherited as a SPI client node. Must be set.

I will defer to Rob Herring (added to CC) to confirm if we really need
all that stuff for spi-cpha and spi-cpol. I would have expected just:

spi-cpha: true
spi-cpol: true

As I understand it, the fact that they are flags will already be
validated as part of the "spi-controller.yaml" so you don't need to
specify that. ...and the fact that you have them listed as "required"
properties documents the fact that they must be set for your device,
so I don't think you need more.

NOTE: if you're testing this using your "example" below I think you
will find that you could set this to something other than just a flag
and it won't yell at you. However, that's because your example has a
bogus SPI controller node in it. I think if you put a real SPI
controller in the example then it'll pull in the "spi-controller.yaml"
bindings and magically start validating everything.


> +  spi-max-frequency:
> +    $ref: /schemas/types.yaml#/definitions/uint32

You don't need the "$ref" line here either, right? Again it'll be
validated as part of the "spi-controller.yaml".


> +required:
> +  - compatible
> +  - reg
> +  - spi-cpha
> +  - spi-cpol

Does "port" need to be listed as required too?
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/samsung,lms380kf01.yaml b/Documentation/devicetree/bindings/display/panel/samsung,lms380kf01.yaml
new file mode 100644
index 000000000000..138be12fc509
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/samsung,lms380kf01.yaml
@@ -0,0 +1,96 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/samsung,lms380kf01.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung LMS380KF01 display panel
+
+description: The LMS380KF01 is a 480x800 DPI display panel from Samsung Mobile
+  Displays (SMD) utilizing the WideChips WS2401 display controller. It can be
+  used with internal or external backlight control.
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    const: samsung,lms380kf01
+
+  reg: true
+
+  interrupts:
+    description: provides an optional ESD (electrostatic discharge)
+      interrupt that signals abnormalities in the display hardware.
+      This can also be raised for other reasons like erroneous
+      configuration.
+    maxItems: 1
+
+  reset-gpios: true
+
+  vci-supply:
+    description: regulator that supplies the VCI analog voltage
+      usually around 3.0 V
+
+  vccio-supply:
+    description: regulator that supplies the VCCIO voltage usually
+      around 1.8 V
+
+  backlight: true
+
+  spi-cpha:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: inherited as a SPI client node. Must be set.
+
+  spi-cpol:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: inherited as a SPI client node. Must be set.
+
+  spi-max-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: inherited as a SPI client node.
+    maximum: 1200000
+
+  port: true
+
+required:
+  - compatible
+  - reg
+  - spi-cpha
+  - spi-cpol
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      panel@0 {
+        compatible = "samsung,lms380kf01";
+        spi-max-frequency = <1200000>;
+        spi-cpha;
+        spi-cpol;
+        reg = <0>;
+        vci-supply = <&lcd_3v0_reg>;
+        vccio-supply = <&lcd_1v8_reg>;
+        reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
+        interrupt-parent = <&gpio2>;
+        interrupts = <29 IRQ_TYPE_EDGE_RISING>;
+
+        port {
+          panel_in: endpoint {
+            remote-endpoint = <&display_out>;
+          };
+        };
+      };
+    };
+
+...