mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
177 lines
5.3 KiB
Diff
177 lines
5.3 KiB
Diff
|
From e39c2eeca4868a7cf34e34fb9a9ca7119c30372a Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||
|
Date: Sun, 27 Feb 2022 13:47:09 +0100
|
||
|
Subject: [PATCH] dt-bindings: display: add bindings for MIPI DBI
|
||
|
compatible SPI panels
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
commit 2f3468b upstream.
|
||
|
|
||
|
Add binding for MIPI DBI compatible SPI panels.
|
||
|
|
||
|
v6:
|
||
|
- Fix indentation (Rob)
|
||
|
|
||
|
v5:
|
||
|
- Add sainsmart18 to compatible items (Rob)
|
||
|
- Expand write-only description (Sam)
|
||
|
|
||
|
v4:
|
||
|
- There should only be two compatible (Maxime)
|
||
|
- s/panel-dbi-spi/panel-mipi-dbi-spi/in compatible
|
||
|
|
||
|
v3:
|
||
|
- Move properties to Device Tree (Maxime)
|
||
|
- Use contains for compatible (Maxime)
|
||
|
- Add backlight property to example
|
||
|
- Flesh out description
|
||
|
|
||
|
v2:
|
||
|
- Fix path for panel-common.yaml
|
||
|
- Use unevaluatedProperties
|
||
|
- Drop properties which are in the allOf section
|
||
|
- Drop model property (Rob)
|
||
|
|
||
|
Acked-by: Maxime Ripard <maxime@cerno.tech>
|
||
|
Acked-by: Sam Ravnborg <sam@ravnborg.org>
|
||
|
Reviewed-by: Rob Herring <robh@kernel.org>
|
||
|
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||
|
Link: https://patchwork.freedesktop.org/patch/msgid/20220227124713.39766-2-noralf@tronnes.org
|
||
|
---
|
||
|
.../display/panel/panel-mipi-dbi-spi.yaml | 126 ++++++++++++++++++
|
||
|
1 file changed, 126 insertions(+)
|
||
|
create mode 100644 Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
|
||
|
|
||
|
--- /dev/null
|
||
|
+++ b/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
|
||
|
@@ -0,0 +1,126 @@
|
||
|
+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
|
||
|
+%YAML 1.2
|
||
|
+---
|
||
|
+$id: http://devicetree.org/schemas/display/panel/panel-mipi-dbi-spi.yaml#
|
||
|
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
+
|
||
|
+title: MIPI DBI SPI Panel
|
||
|
+
|
||
|
+maintainers:
|
||
|
+ - Noralf Trønnes <noralf@tronnes.org>
|
||
|
+
|
||
|
+description: |
|
||
|
+ This binding is for display panels using a MIPI DBI compatible controller
|
||
|
+ in SPI mode.
|
||
|
+
|
||
|
+ The MIPI Alliance Standard for Display Bus Interface defines the electrical
|
||
|
+ and logical interfaces for display controllers historically used in mobile
|
||
|
+ phones. The standard defines 4 display architecture types and this binding is
|
||
|
+ for type 1 which has full frame memory. There are 3 interface types in the
|
||
|
+ standard and type C is the serial interface.
|
||
|
+
|
||
|
+ The standard defines the following interface signals for type C:
|
||
|
+ - Power:
|
||
|
+ - Vdd: Power supply for display module
|
||
|
+ - Vddi: Logic level supply for interface signals
|
||
|
+ Combined into one in this binding called: power-supply
|
||
|
+ - Interface:
|
||
|
+ - CSx: Chip select
|
||
|
+ - SCL: Serial clock
|
||
|
+ - Dout: Serial out
|
||
|
+ - Din: Serial in
|
||
|
+ - SDA: Bidrectional in/out
|
||
|
+ - D/CX: Data/command selection, high=data, low=command
|
||
|
+ Called dc-gpios in this binding.
|
||
|
+ - RESX: Reset when low
|
||
|
+ Called reset-gpios in this binding.
|
||
|
+
|
||
|
+ The type C interface has 3 options:
|
||
|
+
|
||
|
+ - Option 1: 9-bit mode and D/CX as the 9th bit
|
||
|
+ | Command | the next command or following data |
|
||
|
+ |<0><D7><D6><D5><D4><D3><D2><D1><D0>|<D/CX><D7><D6><D5><D4><D3><D2><D1><D0>|
|
||
|
+
|
||
|
+ - Option 2: 16-bit mode and D/CX as a 9th bit
|
||
|
+ | Command or data |
|
||
|
+ |<X><X><X><X><X><X><X><D/CX><D7><D6><D5><D4><D3><D2><D1><D0>|
|
||
|
+
|
||
|
+ - Option 3: 8-bit mode and D/CX as a separate interface line
|
||
|
+ | Command or data |
|
||
|
+ |<D7><D6><D5><D4><D3><D2><D1><D0>|
|
||
|
+
|
||
|
+ The panel resolution is specified using the panel-timing node properties
|
||
|
+ hactive (width) and vactive (height). The other mandatory panel-timing
|
||
|
+ properties should be set to zero except clock-frequency which can be
|
||
|
+ optionally set to inform about the actual pixel clock frequency.
|
||
|
+
|
||
|
+ If the panel is wired to the controller at an offset specify this using
|
||
|
+ hback-porch (x-offset) and vback-porch (y-offset).
|
||
|
+
|
||
|
+allOf:
|
||
|
+ - $ref: panel-common.yaml#
|
||
|
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||
|
+
|
||
|
+properties:
|
||
|
+ compatible:
|
||
|
+ items:
|
||
|
+ - enum:
|
||
|
+ - sainsmart18
|
||
|
+ - const: panel-mipi-dbi-spi
|
||
|
+
|
||
|
+ write-only:
|
||
|
+ type: boolean
|
||
|
+ description:
|
||
|
+ Controller is not readable (ie. Din (MISO on the SPI interface) is not
|
||
|
+ wired up).
|
||
|
+
|
||
|
+ dc-gpios:
|
||
|
+ maxItems: 1
|
||
|
+ description: |
|
||
|
+ Controller data/command selection (D/CX) in 4-line SPI mode.
|
||
|
+ If not set, the controller is in 3-line SPI mode.
|
||
|
+
|
||
|
+required:
|
||
|
+ - compatible
|
||
|
+ - reg
|
||
|
+ - panel-timing
|
||
|
+
|
||
|
+unevaluatedProperties: false
|
||
|
+
|
||
|
+examples:
|
||
|
+ - |
|
||
|
+ #include <dt-bindings/gpio/gpio.h>
|
||
|
+
|
||
|
+ spi {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ display@0{
|
||
|
+ compatible = "sainsmart18", "panel-mipi-dbi-spi";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <40000000>;
|
||
|
+
|
||
|
+ dc-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
|
||
|
+ reset-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
|
||
|
+ write-only;
|
||
|
+
|
||
|
+ backlight = <&backlight>;
|
||
|
+
|
||
|
+ width-mm = <35>;
|
||
|
+ height-mm = <28>;
|
||
|
+
|
||
|
+ panel-timing {
|
||
|
+ hactive = <160>;
|
||
|
+ vactive = <128>;
|
||
|
+ hback-porch = <0>;
|
||
|
+ vback-porch = <0>;
|
||
|
+ clock-frequency = <0>;
|
||
|
+ hfront-porch = <0>;
|
||
|
+ hsync-len = <0>;
|
||
|
+ vfront-porch = <0>;
|
||
|
+ vsync-len = <0>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+...
|