diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-16 23:40:32 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-17 15:11:22 +0200 |
commit | 20ea6adbf199097c4f5f591ffee088340630dae4 (patch) | |
tree | d6719d95e136611a1c25bbf7789652d6d402779d /target/linux/bcm27xx/patches-5.15/950-0565-overlays-Add-fbtft-overlay.patch | |
parent | bca05bd072180dc38ef740b37ded9572a6db1981 (diff) | |
download | upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.gz upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.bz2 upstream-20ea6adbf199097c4f5f591ffee088340630dae4.zip |
bcm27xx: add support for linux v5.15
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0565-overlays-Add-fbtft-overlay.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0565-overlays-Add-fbtft-overlay.patch | 775 |
1 files changed, 775 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0565-overlays-Add-fbtft-overlay.patch b/target/linux/bcm27xx/patches-5.15/950-0565-overlays-Add-fbtft-overlay.patch new file mode 100644 index 0000000000..e9e0353644 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0565-overlays-Add-fbtft-overlay.patch @@ -0,0 +1,775 @@ +From c218d35ede9474ffa6231e8be88c8ad28044ca2e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org> +Date: Wed, 3 Nov 2021 12:21:14 +0100 +Subject: [PATCH] overlays: Add fbtft overlay +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add an overlay that provides much of the functionality that fbtft_device did. + +Signed-off-by: Noralf Trønnes <noralf@tronnes.org> +--- + 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 + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -49,6 +49,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + enc28j60.dtbo \ + enc28j60-spi2.dtbo \ + exc3000.dtbo \ ++ fbtft.dtbo \ + fe-pi-audio.dtbo \ + fsm-demo.dtbo \ + ghost-amp.dtbo \ +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -857,6 +857,130 @@ Params: interrupt GPIO use + 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 +--- /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@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@1 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "himax,hx8340bn"; ++ spi-max-frequency = <32000000>; ++ buswidth = <9>; ++ bgr; ++ }; ++ }; ++ ++ /* adafruit22a */ ++ fragment@2 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9340"; ++ spi-max-frequency = <32000000>; ++ bgr; ++ }; ++ }; ++ ++ /* adafruit28 */ ++ fragment@3 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9341"; ++ spi-max-frequency = <32000000>; ++ bgr; ++ }; ++ }; ++ ++ /* adafruit13m */ ++ fragment@4 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "solomon,ssd1306"; ++ spi-max-frequency = <16000000>; ++ }; ++ }; ++ ++ /* admatec_c-berry28 */ ++ fragment@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@6 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "UltraChip,uc1701"; ++ spi-max-frequency = <8000000>; ++ bgr; ++ }; ++ }; ++ ++ /* er_tftm050_2 */ ++ fragment@7 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "raio,ra8875"; ++ spi-max-frequency = <5000000>; ++ spi-cpha; ++ spi-cpol; ++ width = <480>; ++ height = <272>; ++ bgr; ++ }; ++ }; ++ ++ /* er_tftm070_5 */ ++ fragment@8 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "raio,ra8875"; ++ spi-max-frequency = <5000000>; ++ spi-cpha; ++ spi-cpol; ++ width = <800>; ++ height = <480>; ++ bgr; ++ }; ++ }; ++ ++ /* ew24ha0 */ ++ fragment@9 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ultrachip,uc1611"; ++ spi-max-frequency = <32000000>; ++ spi-cpha; ++ spi-cpol; ++ }; ++ }; ++ ++ /* ew24ha0_9bit */ ++ fragment@10 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ultrachip,uc1611"; ++ spi-max-frequency = <32000000>; ++ spi-cpha; ++ spi-cpol; ++ buswidth = <9>; ++ }; ++ }; ++ ++ /* freetronicsoled128 */ ++ fragment@11 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "solomon,ssd1351"; ++ spi-max-frequency = <20000000>; ++ backlight = <2>; /* FBTFT_ONBOARD_BACKLIGHT */ ++ bgr; ++ }; ++ }; ++ ++ /* hy28a */ ++ fragment@12 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9320"; ++ spi-max-frequency = <32000000>; ++ spi-cpha; ++ spi-cpol; ++ startbyte = <0x70>; ++ bgr; ++ }; ++ }; ++ ++ /* hy28b */ ++ fragment@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@14 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9325"; ++ spi-max-frequency = <32000000>; ++ bgr; ++ }; ++ }; ++ ++ /* mi0283qt-2 */ ++ fragment@15 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "himax,hx8347d"; ++ spi-max-frequency = <32000000>; ++ startbyte = <0x70>; ++ bgr; ++ }; ++ }; ++ ++ /* mi0283qt-9a */ ++ fragment@16 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9341"; ++ spi-max-frequency = <32000000>; ++ buswidth = <9>; ++ bgr; ++ }; ++ }; ++ ++ /* nokia3310 */ ++ fragment@17 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "philips,pcd8544"; ++ spi-max-frequency = <400000>; ++ }; ++ }; ++ ++ /* nokia3310a */ ++ fragment@18 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "teralane,tls8204"; ++ spi-max-frequency = <1000000>; ++ }; ++ }; ++ ++ /* nokia5110 */ ++ fragment@19 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9163"; ++ spi-max-frequency = <12000000>; ++ bgr; ++ }; ++ }; ++ ++ /* piscreen */ ++ fragment@20 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9486"; ++ spi-max-frequency = <32000000>; ++ regwidth = <16>; ++ bgr; ++ }; ++ }; ++ ++ /* pitft */ ++ fragment@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@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@23 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9341"; ++ spi-max-frequency = <32000000>; ++ bgr; ++ }; ++ }; ++ ++ /* sainsmart18 */ ++ fragment@24 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "sitronix,st7735r"; ++ spi-max-frequency = <32000000>; ++ }; ++ }; ++ ++ /* sainsmart32_spi */ ++ fragment@25 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "solomon,ssd1289"; ++ spi-max-frequency = <16000000>; ++ bgr; ++ }; ++ }; ++ ++ /* tinylcd35 */ ++ fragment@26 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "neosec,tinylcd"; ++ spi-max-frequency = <32000000>; ++ bgr; ++ }; ++ }; ++ ++ /* tm022hdh26 */ ++ fragment@27 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9341"; ++ spi-max-frequency = <32000000>; ++ bgr; ++ }; ++ }; ++ ++ /* tontec35_9481 - boards before 02 July 2014 */ ++ fragment@28 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9481"; ++ spi-max-frequency = <128000000>; ++ spi-cpha; ++ spi-cpol; ++ bgr; ++ }; ++ }; ++ ++ /* tontec35_9486 - boards after 02 July 2014 */ ++ fragment@29 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "ilitek,ili9486"; ++ spi-max-frequency = <128000000>; ++ spi-cpha; ++ spi-cpol; ++ bgr; ++ }; ++ }; ++ ++ /* waveshare32b */ ++ fragment@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@31 { ++ target = <&display>; ++ __dormant__ { ++ compatible = "hitachi,bd663474"; ++ spi-max-frequency = <32000000>; ++ spi-cpha; ++ spi-cpol; ++ }; ++ }; ++ ++ spidev_fragment: fragment@100 { ++ target-path = "spi0/spidev@0"; ++ __overlay__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ display_fragment: fragment@101 { ++ target = <&spi0>; ++ __overlay__ { ++ /* needed to avoid dtc warning */ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ display: display@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@0", ++ <&display>, "reg:0=0"; ++ spi0-1 = <&display_fragment>, "target:0=",<&spi0>, ++ <&spidev_fragment>, "target-path=spi0/spidev@1", ++ <&display>, "reg:0=1"; ++ spi1-0 = <&display_fragment>, "target:0=",<&spi1>, ++ <&spidev_fragment>, "target-path=spi1/spidev@0", ++ <&display>, "reg:0=0"; ++ spi1-1 = <&display_fragment>, "target:0=",<&spi1>, ++ <&spidev_fragment>, "target-path=spi1/spidev@1", ++ <&display>, "reg:0=1"; ++ spi1-2 = <&display_fragment>, "target:0=",<&spi1>, ++ <&spidev_fragment>, "target-path=spi1/spidev@2", ++ <&display>, "reg:0=2"; ++ spi2-0 = <&display_fragment>, "target:0=",<&spi2>, ++ <&spidev_fragment>, "target-path=spi2/spidev@0", ++ <&display>, "reg:0=0"; ++ spi2-1 = <&display_fragment>, "target:0=",<&spi2>, ++ <&spidev_fragment>, "target-path=spi2/spidev@1", ++ <&display>, "reg:0=1"; ++ spi2-2 = <&display_fragment>, "target:0=",<&spi2>, ++ <&spidev_fragment>, "target-path=spi2/spidev@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 */ ++ }; ++}; |