APPLIED: [SRU][F/raspi][PATCH] overlays: Add fbtft overlay
Juerg Haefliger
juerg.haefliger at canonical.com
Mon Aug 15 07:12:54 UTC 2022
Applied to focal/raspi master-next branch.
...Juerg
> From: Noralf Trønnes <noralf at tronnes.org>
>
> BugLink: https://bugs.launchpad.net/bugs/1963919
>
> Add an overlay that provides much of the functionality that fbtft_device did.
>
> Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
>
> (cherry picked from commit 6a4525924c43f343951c67af4963386b477938af rpi-5.15-y)
> Signed-off-by: Juerg Haefliger <juerg.haefliger at canonical.com>
> ---
> arch/arm/boot/dts/overlays/Makefile | 1 +
> arch/arm/boot/dts/overlays/README | 124 ++++
> arch/arm/boot/dts/overlays/fbtft-overlay.dts | 611 +++++++++++++++++++
> 3 files changed, 736 insertions(+)
> create mode 100644 arch/arm/boot/dts/overlays/fbtft-overlay.dts
>
> diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
> index b2c782407fe0..bfb27ab9e928 100644
> --- a/arch/arm/boot/dts/overlays/Makefile
> +++ b/arch/arm/boot/dts/overlays/Makefile
> @@ -44,6 +44,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
> enc28j60.dtbo \
> enc28j60-spi2.dtbo \
> exc3000.dtbo \
> + fbtft.dtbo \
> fe-pi-audio.dtbo \
> fsm-demo.dtbo \
> ghost-amp.dtbo \
> diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
> index 03fdbdbe4729..a88f0710466c 100644
> --- a/arch/arm/boot/dts/overlays/README
> +++ b/arch/arm/boot/dts/overlays/README
> @@ -805,6 +805,130 @@ Params: interrupt GPIO used for interrupt (default 4)
> swapxy Touchscreen swapped x y axis
>
>
> +Name: fbtft
> +Info: Overlay for SPI-connected displays using the fbtft drivers.
> +
> + This overlay seeks to replace the functionality provided by fbtft_device
> + which is now gone from the kernel.
> +
> + Most displays from fbtft_device have been ported over.
> + Example:
> + dtoverlay=fbtft,spi0-0,rpi-display,reset_pin=23,dc_pin=24,led_pin=18,rotate=270
> +
> + It is also possible to specify the controller (this will use the default
> + init sequence in the driver).
> + Example:
> + dtoverlay=fbtft,spi0-0,ili9341,bgr,reset_pin=23,dc_pin=24,led_pin=18,rotate=270
> +
> + For devices on spi1 or spi2, the interfaces should be enabled
> + with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
> +
> + The following features of fbtft_device have not been ported over:
> + - parallel bus is not supported
> + - the init property which overrides the controller initialization
> + sequence is not supported as a parameter due to memory limitations in
> + the bootloader responsible for applying the overlay.
> +
> + See https://github.com/notro/fbtft/wiki/FBTFT-RPI-overlays for how to
> + create an overlay.
> +
> +Load: dtoverlay=fbtft,<param>=<val>
> +Params:
> + spi<n>-<m> Configure device at spi<n>, cs<m>
> + (boolean, required)
> + speed SPI bus speed in Hz (default 32000000)
> + cpha Shifted clock phase (CPHA) mode
> + cpol Inverse clock polarity (CPOL) mode
> +
> + adafruit18 Adafruit 1.8
> + adafruit22 Adafruit 2.2 (old)
> + adafruit22a Adafruit 2.2
> + adafruit28 Adafruit 2.8
> + adafruit13m Adafruit 1.3 OLED
> + admatec_c-berry28 C-Berry28
> + dogs102 EA DOGS102
> + er_tftm050_2 ER-TFTM070-2
> + er_tftm070_5 ER-TFTM070-5
> + ew24ha0 EW24HA0
> + ew24ha0_9bit EW24HA0 in 9-bit mode
> + freetronicsoled128 Freetronics OLED128
> + hy28a HY28A
> + hy28b HY28B
> + itdb28_spi ITDB02-2.8 with SPI interface circuit
> + mi0283qt-2 Watterott MI0283QT-2
> + mi0283qt-9a Watterott MI0283QT-9A
> + nokia3310 Nokia 3310
> + nokia3310a Nokia 3310a
> + nokia5110 Nokia 5110
> + piscreen PiScreen
> + pitft Adafruit PiTFT 2.8
> + pioled ILSoft OLED
> + rpi-display Watterott rpi-display
> + sainsmart18 Sainsmart 1.8
> + sainsmart32_spi Sainsmart 3.2 with SPI interfce circuit
> + tinylcd35 TinyLCD 3.5
> + tm022hdh26 Tianma TM022HDH26
> + tontec35_9481 Tontect 3.5 with ILI9481 controller
> + tontec35_9486 Tontect 3.5 with ILI9486 controller
> + waveshare32b Waveshare 3.2
> + waveshare22 Waveshare 2.2
> +
> + bd663474 BD663474 display controller
> + hx8340bn HX8340BN display controller
> + hx8347d HX8347D display controller
> + hx8353d HX8353D display controller
> + hx8357d HX8357D display controller
> + ili9163 ILI9163 display controller
> + ili9320 ILI9320 display controller
> + ili9325 ILI9325 display controller
> + ili9340 ILI9340 display controller
> + ili9341 ILI9341 display controller
> + ili9481 ILI9481 display controller
> + ili9486 ILI9486 display controller
> + pcd8544 PCD8544 display controller
> + ra8875 RA8875 display controller
> + s6d02a1 S6D02A1 display controller
> + s6d1121 S6D1121 display controller
> + seps525 SEPS525 display controller
> + sh1106 SH1106 display controller
> + ssd1289 SSD1289 display controller
> + ssd1305 SSD1305 display controller
> + ssd1306 SSD1306 display controller
> + ssd1325 SSD1325 display controller
> + ssd1331 SSD1331 display controller
> + ssd1351 SSD1351 display controller
> + st7735r ST7735R display controller
> + st7789v ST7789V display controller
> + tls8204 TLS8204 display controller
> + uc1611 UC1611 display controller
> + uc1701 UC1701 display controller
> + upd161704 UPD161704 display controller
> +
> + width Display width in pixels
> + height Display height in pixels
> + regwidth Display controller register width (default is
> + driver specific)
> + buswidth Display bus interface width (default 8)
> + debug Debug output level {0-7}
> + rotate Display rotation {0, 90, 180, 270} (counter
> + clockwise). Not supported by all drivers.
> + bgr Enable BGR mode (default off). Use if Red and
> + Blue are swapped. Not supported by all drivers.
> + fps Frames per second (default 30). In effect this
> + states how long the driver will wait after video
> + memory has been changed until display update
> + transfer is started.
> + txbuflen Length of the FBTFT transmit buffer
> + (default 4096)
> + startbyte Sets the Start byte used by fb_ili9320,
> + fb_ili9325 and fb_hx8347d. Common value is 0x70.
> + gamma String representation of Gamma Curve(s). Driver
> + specific. Not supported by all drivers.
> + reset_pin GPIO pin for RESET
> + dc_pin GPIO pin for D/C
> + led_pin GPIO pin for LED backlight
> +
> +
> Name: fe-pi-audio
> Info: Configures the Fe-Pi Audio Sound Card
> Load: dtoverlay=fe-pi-audio
> diff --git a/arch/arm/boot/dts/overlays/fbtft-overlay.dts b/arch/arm/boot/dts/overlays/fbtft-overlay.dts
> new file mode 100644
> index 000000000000..db45f8c53bcc
> --- /dev/null
> +++ b/arch/arm/boot/dts/overlays/fbtft-overlay.dts
> @@ -0,0 +1,611 @@
> +/*
> + * Device Tree overlay for fbtft drivers
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +/ {
> + compatible = "brcm,bcm2835";
> +
> + /* adafruit18 */
> + fragment at 0 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "sitronix,st7735r";
> + spi-max-frequency = <32000000>;
> + gamma = "02 1c 07 12 37 32 29 2d 29 25 2B 39 00 01 03 10\n03 1d 07 06 2E 2C 29 2D 2E 2E 37 3F 00 00 02 10";
> + };
> + };
> +
> + /* adafruit22 */
> + fragment at 1 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "himax,hx8340bn";
> + spi-max-frequency = <32000000>;
> + buswidth = <9>;
> + bgr;
> + };
> + };
> +
> + /* adafruit22a */
> + fragment at 2 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9340";
> + spi-max-frequency = <32000000>;
> + bgr;
> + };
> + };
> +
> + /* adafruit28 */
> + fragment at 3 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9341";
> + spi-max-frequency = <32000000>;
> + bgr;
> + };
> + };
> +
> + /* adafruit13m */
> + fragment at 4 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "solomon,ssd1306";
> + spi-max-frequency = <16000000>;
> + };
> + };
> +
> + /* admatec_c-berry28 */
> + fragment at 5 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "sitronix,st7789v";
> + spi-max-frequency = <48000000>;
> + init = <0x01000011
> + 0x02000078
> + 0x0100003A 0x05
> + 0x010000B2 0x0C 0x0C 0x00 0x33 0x33
> + 0x010000B7 0x35
> + 0x010000C2 0x01 0xFF
> + 0x010000C3 0x17
> + 0x010000C4 0x20
> + 0x010000BB 0x17
> + 0x010000C5 0x20
> + 0x010000D0 0xA4 0xA1
> + 0x01000029>;
> + gamma = "D0 00 14 15 13 2C 42 43 4E 09 16 14 18 21\nD0 00 14 15 13 0B 43 55 53 0C 17 14 23 20";
> + };
> + };
> +
> + /* dogs102 */
> + fragment at 6 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "UltraChip,uc1701";
> + spi-max-frequency = <8000000>;
> + bgr;
> + };
> + };
> +
> + /* er_tftm050_2 */
> + fragment at 7 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "raio,ra8875";
> + spi-max-frequency = <5000000>;
> + spi-cpha;
> + spi-cpol;
> + width = <480>;
> + height = <272>;
> + bgr;
> + };
> + };
> +
> + /* er_tftm070_5 */
> + fragment at 8 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "raio,ra8875";
> + spi-max-frequency = <5000000>;
> + spi-cpha;
> + spi-cpol;
> + width = <800>;
> + height = <480>;
> + bgr;
> + };
> + };
> +
> + /* ew24ha0 */
> + fragment at 9 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ultrachip,uc1611";
> + spi-max-frequency = <32000000>;
> + spi-cpha;
> + spi-cpol;
> + };
> + };
> +
> + /* ew24ha0_9bit */
> + fragment at 10 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ultrachip,uc1611";
> + spi-max-frequency = <32000000>;
> + spi-cpha;
> + spi-cpol;
> + buswidth = <9>;
> + };
> + };
> +
> + /* freetronicsoled128 */
> + fragment at 11 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "solomon,ssd1351";
> + spi-max-frequency = <20000000>;
> + backlight = <2>; /* FBTFT_ONBOARD_BACKLIGHT */
> + bgr;
> + };
> + };
> +
> + /* hy28a */
> + fragment at 12 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9320";
> + spi-max-frequency = <32000000>;
> + spi-cpha;
> + spi-cpol;
> + startbyte = <0x70>;
> + bgr;
> + };
> + };
> +
> + /* hy28b */
> + fragment at 13 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9325";
> + spi-max-frequency = <48000000>;
> + spi-cpha;
> + spi-cpol;
> + init = <0x010000e7 0x0010
> + 0x01000000 0x0001
> + 0x01000001 0x0100
> + 0x01000002 0x0700
> + 0x01000003 0x1030
> + 0x01000004 0x0000
> + 0x01000008 0x0207
> + 0x01000009 0x0000
> + 0x0100000a 0x0000
> + 0x0100000c 0x0001
> + 0x0100000d 0x0000
> + 0x0100000f 0x0000
> + 0x01000010 0x0000
> + 0x01000011 0x0007
> + 0x01000012 0x0000
> + 0x01000013 0x0000
> + 0x02000032
> + 0x01000010 0x1590
> + 0x01000011 0x0227
> + 0x02000032
> + 0x01000012 0x009c
> + 0x02000032
> + 0x01000013 0x1900
> + 0x01000029 0x0023
> + 0x0100002b 0x000e
> + 0x02000032
> + 0x01000020 0x0000
> + 0x01000021 0x0000
> + 0x02000032
> + 0x01000050 0x0000
> + 0x01000051 0x00ef
> + 0x01000052 0x0000
> + 0x01000053 0x013f
> + 0x01000060 0xa700
> + 0x01000061 0x0001
> + 0x0100006a 0x0000
> + 0x01000080 0x0000
> + 0x01000081 0x0000
> + 0x01000082 0x0000
> + 0x01000083 0x0000
> + 0x01000084 0x0000
> + 0x01000085 0x0000
> + 0x01000090 0x0010
> + 0x01000092 0x0000
> + 0x01000093 0x0003
> + 0x01000095 0x0110
> + 0x01000097 0x0000
> + 0x01000098 0x0000
> + 0x01000007 0x0133
> + 0x01000020 0x0000
> + 0x01000021 0x0000
> + 0x02000064>;
> + startbyte = <0x70>;
> + bgr;
> + fps = <50>;
> + gamma = "04 1F 4 7 7 0 7 7 6 0\n0F 00 1 7 4 0 0 0 6 7";
> + };
> + };
> +
> + /* itdb28_spi */
> + fragment at 14 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9325";
> + spi-max-frequency = <32000000>;
> + bgr;
> + };
> + };
> +
> + /* mi0283qt-2 */
> + fragment at 15 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "himax,hx8347d";
> + spi-max-frequency = <32000000>;
> + startbyte = <0x70>;
> + bgr;
> + };
> + };
> +
> + /* mi0283qt-9a */
> + fragment at 16 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9341";
> + spi-max-frequency = <32000000>;
> + buswidth = <9>;
> + bgr;
> + };
> + };
> +
> + /* nokia3310 */
> + fragment at 17 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "philips,pcd8544";
> + spi-max-frequency = <400000>;
> + };
> + };
> +
> + /* nokia3310a */
> + fragment at 18 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "teralane,tls8204";
> + spi-max-frequency = <1000000>;
> + };
> + };
> +
> + /* nokia5110 */
> + fragment at 19 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9163";
> + spi-max-frequency = <12000000>;
> + bgr;
> + };
> + };
> +
> + /* piscreen */
> + fragment at 20 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9486";
> + spi-max-frequency = <32000000>;
> + regwidth = <16>;
> + bgr;
> + };
> + };
> +
> + /* pitft */
> + fragment at 21 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9340";
> + spi-max-frequency = <32000000>;
> + init = <0x01000001
> + 0x02000005
> + 0x01000028
> + 0x010000EF 0x03 0x80 0x02
> + 0x010000CF 0x00 0xC1 0x30
> + 0x010000ED 0x64 0x03 0x12 0x81
> + 0x010000E8 0x85 0x00 0x78
> + 0x010000CB 0x39 0x2C 0x00 0x34 0x02
> + 0x010000F7 0x20
> + 0x010000EA 0x00 0x00
> + 0x010000C0 0x23
> + 0x010000C1 0x10
> + 0x010000C5 0x3E 0x28
> + 0x010000C7 0x86
> + 0x0100003A 0x55
> + 0x010000B1 0x00 0x18
> + 0x010000B6 0x08 0x82 0x27
> + 0x010000F2 0x00
> + 0x01000026 0x01
> + 0x010000E0 0x0F 0x31 0x2B 0x0C 0x0E 0x08 0x4E 0xF1 0x37 0x07 0x10 0x03 0x0E 0x09 0x00
> + 0x010000E1 0x00 0x0E 0x14 0x03 0x11 0x07 0x31 0xC1 0x48 0x08 0x0F 0x0C 0x31 0x36 0x0F
> + 0x01000011
> + 0x02000064
> + 0x01000029
> + 0x02000014>;
> + bgr;
> + };
> + };
> +
> + /* pioled */
> + fragment at 22 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "solomon,ssd1351";
> + spi-max-frequency = <20000000>;
> + bgr;
> + gamma = "0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4";
> + };
> + };
> +
> + /* rpi-display */
> + fragment at 23 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9341";
> + spi-max-frequency = <32000000>;
> + bgr;
> + };
> + };
> +
> + /* sainsmart18 */
> + fragment at 24 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "sitronix,st7735r";
> + spi-max-frequency = <32000000>;
> + };
> + };
> +
> + /* sainsmart32_spi */
> + fragment at 25 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "solomon,ssd1289";
> + spi-max-frequency = <16000000>;
> + bgr;
> + };
> + };
> +
> + /* tinylcd35 */
> + fragment at 26 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "neosec,tinylcd";
> + spi-max-frequency = <32000000>;
> + bgr;
> + };
> + };
> +
> + /* tm022hdh26 */
> + fragment at 27 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9341";
> + spi-max-frequency = <32000000>;
> + bgr;
> + };
> + };
> +
> + /* tontec35_9481 - boards before 02 July 2014 */
> + fragment at 28 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9481";
> + spi-max-frequency = <128000000>;
> + spi-cpha;
> + spi-cpol;
> + bgr;
> + };
> + };
> +
> + /* tontec35_9486 - boards after 02 July 2014 */
> + fragment at 29 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9486";
> + spi-max-frequency = <128000000>;
> + spi-cpha;
> + spi-cpol;
> + bgr;
> + };
> + };
> +
> + /* waveshare32b */
> + fragment at 30 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "ilitek,ili9340";
> + spi-max-frequency = <48000000>;
> + init = <0x010000CB 0x39 0x2C 0x00 0x34 0x02
> + 0x010000CF 0x00 0xC1 0x30
> + 0x010000E8 0x85 0x00 0x78
> + 0x010000EA 0x00 0x00
> + 0x010000ED 0x64 0x03 0x12 0x81
> + 0x010000F7 0x20
> + 0x010000C0 0x23
> + 0x010000C1 0x10
> + 0x010000C5 0x3E 0x28
> + 0x010000C7 0x86
> + 0x01000036 0x28
> + 0x0100003A 0x55
> + 0x010000B1 0x00 0x18
> + 0x010000B6 0x08 0x82 0x27
> + 0x010000F2 0x00
> + 0x01000026 0x01
> + 0x010000E0 0x0F 0x31 0x2B 0x0C 0x0E 0x08 0x4E 0xF1 0x37 0x07 0x10 0x03 0x0E 0x09 0x00
> + 0x010000E1 0x00 0x0E 0x14 0x03 0x11 0x07 0x31 0xC1 0x48 0x08 0x0F 0x0C 0x31 0x36 0x0F
> + 0x01000011
> + 0x02000078
> + 0x01000029
> + 0x0100002C>;
> + bgr;
> + };
> + };
> +
> + /* waveshare22 */
> + fragment at 31 {
> + target = <&display>;
> + __dormant__ {
> + compatible = "hitachi,bd663474";
> + spi-max-frequency = <32000000>;
> + spi-cpha;
> + spi-cpol;
> + };
> + };
> +
> + spidev_fragment: fragment at 100 {
> + target-path = "spi0/spidev at 0";
> + __overlay__ {
> + status = "disabled";
> + };
> + };
> +
> + display_fragment: fragment at 101 {
> + target = <&spi0>;
> + __overlay__ {
> + /* needed to avoid dtc warning */
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + status = "okay";
> +
> + display: display at 0{
> + reg = <0>;
> + spi-max-frequency = <32000000>;
> + fps = <30>;
> + buswidth = <8>;
> + };
> + };
> + };
> +
> + __overrides__ {
> + spi0-0 = <&display_fragment>, "target:0=",<&spi0>,
> + <&spidev_fragment>, "target-path=spi0/spidev at 0",
> + <&display>, "reg:0=0";
> + spi0-1 = <&display_fragment>, "target:0=",<&spi0>,
> + <&spidev_fragment>, "target-path=spi0/spidev at 1",
> + <&display>, "reg:0=1";
> + spi1-0 = <&display_fragment>, "target:0=",<&spi1>,
> + <&spidev_fragment>, "target-path=spi1/spidev at 0",
> + <&display>, "reg:0=0";
> + spi1-1 = <&display_fragment>, "target:0=",<&spi1>,
> + <&spidev_fragment>, "target-path=spi1/spidev at 1",
> + <&display>, "reg:0=1";
> + spi1-2 = <&display_fragment>, "target:0=",<&spi1>,
> + <&spidev_fragment>, "target-path=spi1/spidev at 2",
> + <&display>, "reg:0=2";
> + spi2-0 = <&display_fragment>, "target:0=",<&spi2>,
> + <&spidev_fragment>, "target-path=spi2/spidev at 0",
> + <&display>, "reg:0=0";
> + spi2-1 = <&display_fragment>, "target:0=",<&spi2>,
> + <&spidev_fragment>, "target-path=spi2/spidev at 1",
> + <&display>, "reg:0=1";
> + spi2-2 = <&display_fragment>, "target:0=",<&spi2>,
> + <&spidev_fragment>, "target-path=spi2/spidev at 2",
> + <&display>, "reg:0=2";
> +
> + speed = <&display>, "spi-max-frequency:0";
> + cpha = <&display>, "spi-cpha?";
> + cpol = <&display>, "spi-cpol?";
> +
> + /* Displays */
> + adafruit18 = <0>, "+0";
> + adafruit22 = <0>, "+1";
> + adafruit22a = <0>, "+2";
> + adafruit28 = <0>, "+3";
> + adafruit13m = <0>, "+4";
> + admatec_c-berry28 = <0>, "+5";
> + dogs102 = <0>, "+6";
> + er_tftm050_2 = <0>, "+7";
> + er_tftm070_5 = <0>, "+8";
> + ew24ha0 = <0>, "+9";
> + ew24ha0_9bit = <0>, "+10";
> + freetronicsoled128 = <0>, "+11";
> + hy28a = <0>, "+12";
> + hy28b = <0>, "+13";
> + itdb28_spi = <0>, "+14";
> + mi0283qt-2 = <0>, "+15";
> + mi0283qt-9a = <0>, "+16";
> + nokia3310 = <0>, "+17";
> + nokia3310a = <0>, "+18";
> + nokia5110 = <0>, "+19";
> + piscreen = <0>, "+20";
> + pitft = <0>, "+21";
> + pioled = <0>, "+22";
> + rpi-display = <0>, "+23";
> + sainsmart18 = <0>, "+24";
> + sainsmart32_spi = <0>, "+25";
> + tinylcd35 = <0>, "+26";
> + tm022hdh26 = <0>, "+27";
> + tontec35_9481 = <0>, "+28";
> + tontec35_9486 = <0>, "+29";
> + waveshare32b = <0>, "+30";
> + waveshare22 = <0>, "+31";
> +
> + /* Controllers */
> + bd663474 = <&display>, "compatible=hitachi,bd663474";
> + hx8340bn = <&display>, "compatible=himax,hx8340bn";
> + hx8347d = <&display>, "compatible=himax,hx8347d";
> + hx8353d = <&display>, "compatible=himax,hx8353d";
> + hx8357d = <&display>, "compatible=himax,hx8357d";
> + ili9163 = <&display>, "compatible=ilitek,ili9163";
> + ili9320 = <&display>, "compatible=ilitek,ili9320";
> + ili9325 = <&display>, "compatible=ilitek,ili9325";
> + ili9340 = <&display>, "compatible=ilitek,ili9340";
> + ili9341 = <&display>, "compatible=ilitek,ili9341";
> + ili9481 = <&display>, "compatible=ilitek,ili9481";
> + ili9486 = <&display>, "compatible=ilitek,ili9486";
> + pcd8544 = <&display>, "compatible=philips,pcd8544";
> + ra8875 = <&display>, "compatible=raio,ra8875";
> + s6d02a1 = <&display>, "compatible=samsung,s6d02a1";
> + s6d1121 = <&display>, "compatible=samsung,s6d1121";
> + seps525 = <&display>, "compatible=syncoam,seps525";
> + sh1106 = <&display>, "compatible=sinowealth,sh1106";
> + ssd1289 = <&display>, "compatible=solomon,ssd1289";
> + ssd1305 = <&display>, "compatible=solomon,ssd1305";
> + ssd1306 = <&display>, "compatible=solomon,ssd1306";
> + ssd1325 = <&display>, "compatible=solomon,ssd1325";
> + ssd1331 = <&display>, "compatible=solomon,ssd1331";
> + ssd1351 = <&display>, "compatible=solomon,ssd1351";
> + st7735r = <&display>, "compatible=sitronix,st7735r";
> + st7789v = <&display>, "compatible=sitronix,st7789v";
> + tls8204 = <&display>, "compatible=teralane,tls8204";
> + uc1611 = <&display>, "compatible=ultrachip,uc1611";
> + uc1701 = <&display>, "compatible=UltraChip,uc1701";
> + upd161704 = <&display>, "compatible=nec,upd161704";
> +
> + width = <&display>, "width:0";
> + height = <&display>, "height:0";
> + regwidth = <&display>, "regwidth:0";
> + buswidth = <&display>, "buswidth:0";
> + debug = <&display>, "debug:0";
> + rotate = <&display>, "rotate:0";
> + bgr = <&display>, "bgr?";
> + fps = <&display>, "fps:0";
> + txbuflen = <&display>, "txbuflen:0";
> + startbyte = <&display>, "startbyte:0";
> + gamma = <&display>, "gamma";
> +
> + reset_pin = <&display>, "reset-gpios:0=", <&gpio>,
> + <&display>, "reset-gpios:4",
> + <&display>, "reset-gpios:8=1"; /* GPIO_ACTIVE_LOW */
> + dc_pin = <&display>, "dc-gpios:0=", <&gpio>,
> + <&display>, "dc-gpios:4",
> + <&display>, "dc-gpios:8=0"; /* GPIO_ACTIVE_HIGH */
> + led_pin = <&display>, "led-gpios:0=", <&gpio>,
> + <&display>, "led-gpios:4",
> + <&display>, "led-gpios:8=0"; /* GPIO_ACTIVE_HIGH */
> + };
> +};
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20220815/91b265b7/attachment-0001.sig>
More information about the kernel-team
mailing list