1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/display/panel/panel-mipi-dbi-spi.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: MIPI DBI SPI Panel 8 9maintainers: 10 - Noralf Trønnes <noralf@tronnes.org> 11 12description: | 13 This binding is for display panels using a MIPI DBI compatible controller 14 in SPI mode. 15 16 The MIPI Alliance Standard for Display Bus Interface defines the electrical 17 and logical interfaces for display controllers historically used in mobile 18 phones. The standard defines 4 display architecture types and this binding is 19 for type 1 which has full frame memory. There are 3 interface types in the 20 standard and type C is the serial interface. 21 22 The standard defines the following interface signals for type C: 23 - Power: 24 - Vdd: Power supply for display module 25 Called power-supply in this binding. 26 - Vddi: Logic level supply for interface signals 27 Called io-supply in this binding. 28 - Interface: 29 - CSx: Chip select 30 - SCL: Serial clock 31 - Dout: Serial out 32 - Din: Serial in 33 - SDA: Bidrectional in/out 34 - D/CX: Data/command selection, high=data, low=command 35 Called dc-gpios in this binding. 36 - RESX: Reset when low 37 Called reset-gpios in this binding. 38 39 The type C interface has 3 options: 40 41 - Option 1: 9-bit mode and D/CX as the 9th bit 42 | Command | the next command or following data | 43 |<0><D7><D6><D5><D4><D3><D2><D1><D0>|<D/CX><D7><D6><D5><D4><D3><D2><D1><D0>| 44 45 - Option 2: 16-bit mode and D/CX as a 9th bit 46 | Command or data | 47 |<X><X><X><X><X><X><X><D/CX><D7><D6><D5><D4><D3><D2><D1><D0>| 48 49 - Option 3: 8-bit mode and D/CX as a separate interface line 50 | Command or data | 51 |<D7><D6><D5><D4><D3><D2><D1><D0>| 52 53 The panel resolution is specified using the panel-timing node properties 54 hactive (width) and vactive (height). The other mandatory panel-timing 55 properties should be set to zero except clock-frequency which can be 56 optionally set to inform about the actual pixel clock frequency. 57 58 If the panel is wired to the controller at an offset specify this using 59 hback-porch (x-offset) and vback-porch (y-offset). 60 61allOf: 62 - $ref: panel-common.yaml# 63 - $ref: /schemas/spi/spi-peripheral-props.yaml# 64 65properties: 66 compatible: 67 items: 68 - enum: 69 - saef,sftc154b 70 - sainsmart18 71 - shineworld,lh133k 72 - const: panel-mipi-dbi-spi 73 74 reg: 75 maxItems: 1 76 77 write-only: 78 type: boolean 79 description: 80 Controller is not readable (ie. Din (MISO on the SPI interface) is not 81 wired up). 82 83 dc-gpios: 84 maxItems: 1 85 description: | 86 Controller data/command selection (D/CX) in 4-line SPI mode. 87 If not set, the controller is in 3-line SPI mode. 88 89 io-supply: 90 description: | 91 Logic level supply for interface signals (Vddi). 92 No need to set if this is the same as power-supply. 93 94 spi-3wire: true 95 96required: 97 - compatible 98 - reg 99 - width-mm 100 - height-mm 101 - panel-timing 102 103unevaluatedProperties: false 104 105examples: 106 - | 107 #include <dt-bindings/gpio/gpio.h> 108 109 spi { 110 #address-cells = <1>; 111 #size-cells = <0>; 112 113 display@0{ 114 compatible = "sainsmart18", "panel-mipi-dbi-spi"; 115 reg = <0>; 116 spi-max-frequency = <40000000>; 117 118 dc-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>; 119 reset-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; 120 write-only; 121 122 backlight = <&backlight>; 123 124 width-mm = <35>; 125 height-mm = <28>; 126 127 panel-timing { 128 hactive = <160>; 129 vactive = <128>; 130 hback-porch = <0>; 131 vback-porch = <0>; 132 clock-frequency = <0>; 133 hfront-porch = <0>; 134 hsync-len = <0>; 135 vfront-porch = <0>; 136 vsync-len = <0>; 137 }; 138 }; 139 }; 140 141... 142