camera-mux-4port.dtbo \
cap1106.dtbo \
chipdip-dac.dtbo \
+ cirrus-wm5102.dtbo \
cma.dtbo \
cutiepi-panel.dtbo \
dacberry400.dtbo \
i2c4.dtbo \
i2c5.dtbo \
i2c6.dtbo \
+ i2s-dac.dtbo \
i2s-gpio28-31.dtbo \
ilitek251x.dtbo \
imx219.dtbo \
pitft28-resistive.dtbo \
pitft35-resistive.dtbo \
pps-gpio.dtbo \
+ proto-codec.dtbo \
pwm.dtbo \
pwm-2chan.dtbo \
pwm-ir-tx.dtbo \
ramoops-pi4.dtbo \
rotary-encoder.dtbo \
rpi-backlight.dtbo \
- rpi-cirrus-wm5102.dtbo \
rpi-codeczero.dtbo \
- rpi-dac.dtbo \
rpi-dacplus.dtbo \
rpi-dacpro.dtbo \
rpi-digiampplus.dtbo \
- rpi-display.dtbo \
rpi-ft5406.dtbo \
rpi-poe.dtbo \
rpi-poe-plus.dtbo \
- rpi-proto.dtbo \
rpi-sense.dtbo \
rpi-tv.dtbo \
rra-digidac1-wm8741-audio.dtbo \
w1-gpio.dtbo \
w1-gpio-pullup.dtbo \
w5500.dtbo \
+ watterott-rpi-display.dtbo \
waveshare-can-fd-hat-mode-a.dtbo \
waveshare-can-fd-hat-mode-b.dtbo \
wittypi.dtbo \
Params: <None>
+Name: cirrus-wm5102
+Info: Configures the Cirrus Logic Audio Card
+Load: dtoverlay=cirrus-wm5102
+Params: <None>
+
+
Name: cma
Info: Set custom CMA sizes, only use if you know what you are doing, might
clash with other overlays like vc4-fkms-v3d and vc4-kms-v3d.
"100000")
+Name: i2s-dac
+Info: Configures any passive I2S DAC soundcard.
+Load: dtoverlay=i2s-dac
+Params: <None>
+
+
Name: i2s-gpio28-31
Info: move I2S function block to GPIO 28 to 31
Load: dtoverlay=i2s-gpio28-31
Default is "off".
+Name: proto-codec
+Info: Configures the PROTO Audio Codec card
+Load: dtoverlay=proto-codec
+Params: <None>
+
+
Name: pwm
Info: Configures a single PWM channel
Legal pin,function combinations for each channel:
Name: rpi-cirrus-wm5102
-Info: Configures the Cirrus Logic Audio Card
-Load: dtoverlay=rpi-cirrus-wm5102
-Params: <None>
+Info: This overlay has been renamed to cirrus-wm5102
+Load: <Deprecated>
Name: rpi-codeczero
Name: rpi-dac
-Info: Configures the RPi DAC audio card
-Load: dtoverlay=rpi-dac
-Params: <None>
+Info: This overlay has been renaamed to i2s-dac.
+Load: <Deprecated>
Name: rpi-dacplus
Name: rpi-display
-Info: RPi-Display - 2.8" Touch Display by Watterott
- Linux has 2 drivers that support this display and this overlay supports
- both.
-
- Examples:
- fbtft/fb_ili9341: dtoverlay=rpi-display
- drm/mi0283qt: dtoverlay=rpi-display,drm,backlight-pwm,rotate=180
-
- Some notable differences with the DRM driver compared to fbtft:
- - The display is turned on when it's first used and not on driver load
- as with fbtft. So if nothing uses the display it stays off.
- - Can run with a higher SPI clock increasing framerate. This is possible
- since the driver avoids messing up the controller configuration due to
- transmission errors by running config commands at 10MHz and only pixel
- data at full speed (occasional pixel glitch might occur).
- - PWM backlight is supported.
-
-Load: dtoverlay=rpi-display,<param>=<val>
-Params: speed Display SPI bus speed
- rotate Display rotation {0,90,180,270}
- fps Delay between frame updates (fbtft only)
- debug Debug output level {0-7} (fbtft only)
- xohms Touchpanel sensitivity (X-plate resistance)
- swapxy Swap x and y axis
- backlight Change backlight GPIO pin {e.g. 12, 18}
- (fbtft only)
- drm Use DRM/KMS driver mi0283qt instead of fbtft.
- Set the SPI clock to 70MHz.
- This has to be the first parameter.
- backlight-pwm Use pwm for backlight (drm only). NB: Disables
- audio headphone output as that also uses PWM.
+Info: This overlay has been renamed to watterott-rpi-display
+Load: <Deprecated>
Name: rpi-ft5406
Name: rpi-proto
-Info: Configures the RPi Proto audio card
-Load: dtoverlay=rpi-proto
-Params: <None>
+Info: This overlay has been renamaed to proto-codec.
+Load: <Deprecated>
Name: rpi-sense
cs SPI bus Chip Select (default 0)
+Name: watterott-rpi-display
+Info: Watterott RPi-Display - 2.8" Touch Display
+ Linux has 2 drivers that support this display and this overlay supports
+ both.
+
+ Examples:
+ fbtft/fb_ili9341: dtoverlay=watterott-rpi-display
+ drm/mi0283qt: dtoverlay=watterott-rpi-display,drm,backlight-pwm,rotate=180
+
+ Some notable differences with the DRM driver compared to fbtft:
+ - The display is turned on when it's first used and not on driver load
+ as with fbtft. So if nothing uses the display it stays off.
+ - Can run with a higher SPI clock increasing framerate. This is possible
+ since the driver avoids messing up the controller configuration due to
+ transmission errors by running config commands at 10MHz and only pixel
+ data at full speed (occasional pixel glitch might occur).
+ - PWM backlight is supported.
+
+Load: dtoverlay=watterott-rpi-display,<param>=<val>
+Params: speed Display SPI bus speed
+ rotate Display rotation {0,90,180,270}
+ fps Delay between frame updates (fbtft only)
+ debug Debug output level {0-7} (fbtft only)
+ xohms Touchpanel sensitivity (X-plate resistance)
+ swapxy Swap x and y axis
+ backlight Change backlight GPIO pin {e.g. 12, 18}
+ (fbtft only)
+ drm Use DRM/KMS driver mi0283qt instead of fbtft.
+ Set the SPI clock to 70MHz.
+ This has to be the first parameter.
+ backlight-pwm Use pwm for backlight (drm only). NB: Disables
+ audio headphone output as that also uses PWM.
+
+
Name: waveshare-can-fd-hat-mode-a
Info: Overlay for the Waveshare 2-Channel Isolated CAN FD Expansion HAT
for Raspberry Pi, Multi Protections. Use this overlay when the
--- /dev/null
+// Definitions for the Cirrus Logic Audio Card
+/dts-v1/;
+/plugin/;
+#include <dt-bindings/pinctrl/bcm2835.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/mfd/arizona.h>
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&i2s>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target = <&gpio>;
+ __overlay__ {
+ wlf_5102_pins: wlf_5102_pins {
+ brcm,pins = <17 22 27>;
+ brcm,function = <
+ BCM2835_FSEL_GPIO_OUT
+ BCM2835_FSEL_GPIO_OUT
+ BCM2835_FSEL_GPIO_IN
+ >;
+ };
+ wlf_8804_pins: wlf_8804_pins {
+ brcm,pins = <8>;
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
+ };
+ };
+ };
+
+ fragment@2 {
+ target = <&spi0_cs_pins>;
+ __overlay__ {
+ brcm,pins = <7>;
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
+ };
+ };
+
+
+ fragment@3 {
+ target-path = "/";
+ __overlay__ {
+ rpi_cirrus_reg_1v8: rpi_cirrus_reg_1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "RPi-Cirrus 1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+ };
+ };
+
+ fragment@4 {
+ target = <&spidev0>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@5 {
+ target = <&spidev1>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@6 {
+ target = <&spi0>;
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ cs-gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+
+ wm5102@0{
+ compatible = "wlf,wm5102";
+ reg = <0>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlf_5102_pins>;
+
+ spi-max-frequency = <500000>;
+
+ interrupt-parent = <&gpio>;
+ interrupts = <27 8>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ LDOVDD-supply = <&rpi_cirrus_reg_1v8>;
+ AVDD-supply = <&rpi_cirrus_reg_1v8>;
+ DBVDD1-supply = <&rpi_cirrus_reg_1v8>;
+ DBVDD2-supply = <&vdd_3v3_reg>;
+ DBVDD3-supply = <&vdd_3v3_reg>;
+ CPVDD-supply = <&rpi_cirrus_reg_1v8>;
+ SPKVDDL-supply = <&vdd_5v0_reg>;
+ SPKVDDR-supply = <&vdd_5v0_reg>;
+ DCVDD-supply = <&arizona_ldo1>;
+
+ reset-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+ wlf,ldoena = <&gpio 22 GPIO_ACTIVE_HIGH>;
+ wlf,gpio-defaults = <
+ ARIZONA_GP_DEFAULT
+ ARIZONA_GP_DEFAULT
+ ARIZONA_GP_DEFAULT
+ ARIZONA_GP_DEFAULT
+ ARIZONA_GP_DEFAULT
+ >;
+ wlf,micd-configs = <0 1 0>;
+ wlf,dmic-ref = <
+ ARIZONA_DMIC_MICVDD
+ ARIZONA_DMIC_MICBIAS2
+ ARIZONA_DMIC_MICVDD
+ ARIZONA_DMIC_MICVDD
+ >;
+ wlf,inmode = <
+ ARIZONA_INMODE_DIFF
+ ARIZONA_INMODE_DMIC
+ ARIZONA_INMODE_SE
+ ARIZONA_INMODE_DIFF
+ >;
+ status = "okay";
+
+ arizona_ldo1: ldo1 {
+ regulator-name = "LDO1";
+ // default constraints as in
+ // arizona-ldo1.c
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1800000>;
+ };
+ };
+ };
+ };
+
+ fragment@7 {
+ target = <&i2c1>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wm8804@3b {
+ compatible = "wlf,wm8804";
+ reg = <0x3b>;
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlf_8804_pins>;
+
+ PVDD-supply = <&vdd_3v3_reg>;
+ DVDD-supply = <&vdd_3v3_reg>;
+ wlf,reset-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ };
+ };
+ };
+
+ fragment@8 {
+ target = <&sound>;
+ __overlay__ {
+ compatible = "wlf,rpi-cirrus";
+ i2s-controller = <&i2s>;
+ status = "okay";
+ };
+ };
+};
--- /dev/null
+// Definitions for RPi DAC
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&i2s>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target-path = "/";
+ __overlay__ {
+ pcm1794a-codec {
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm1794a";
+ status = "okay";
+ };
+ };
+ };
+
+ fragment@2 {
+ target = <&sound>;
+ __overlay__ {
+ compatible = "rpi,rpi-dac";
+ i2s-controller = <&i2s>;
+ status = "okay";
+ };
+ };
+};
bcm2711;
};
+ rpi-cirrus-wm5102 {
+ renamed = "cirrus-wm5102";
+ };
+
+ rpi-dac {
+ renamed = "i2s-dac";
+ };
+
+ rpi-display {
+ renamed = "watterott-rpi-display";
+ };
+
+ rpi-proto {
+ renamed = "proto-codec";
+ };
+
rpivid-v4l2 {
deprecated = "no longer necessary";
};
--- /dev/null
+// Definitions for Rpi-Proto
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&i2s>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target = <&i2c1>;
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ wm8731@1a {
+ #sound-dai-cells = <0>;
+ compatible = "wlf,wm8731";
+ reg = <0x1a>;
+ status = "okay";
+ };
+ };
+ };
+
+ fragment@2 {
+ target = <&sound>;
+ __overlay__ {
+ compatible = "rpi,rpi-proto";
+ i2s-controller = <&i2s>;
+ status = "okay";
+ };
+ };
+};
+++ /dev/null
-// Definitions for the Cirrus Logic Audio Card
-/dts-v1/;
-/plugin/;
-#include <dt-bindings/pinctrl/bcm2835.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/mfd/arizona.h>
-
-/ {
- compatible = "brcm,bcm2835";
-
- fragment@0 {
- target = <&i2s>;
- __overlay__ {
- status = "okay";
- };
- };
-
- fragment@1 {
- target = <&gpio>;
- __overlay__ {
- wlf_5102_pins: wlf_5102_pins {
- brcm,pins = <17 22 27>;
- brcm,function = <
- BCM2835_FSEL_GPIO_OUT
- BCM2835_FSEL_GPIO_OUT
- BCM2835_FSEL_GPIO_IN
- >;
- };
- wlf_8804_pins: wlf_8804_pins {
- brcm,pins = <8>;
- brcm,function = <BCM2835_FSEL_GPIO_OUT>;
- };
- };
- };
-
- fragment@2 {
- target = <&spi0_cs_pins>;
- __overlay__ {
- brcm,pins = <7>;
- brcm,function = <BCM2835_FSEL_GPIO_OUT>;
- };
- };
-
-
- fragment@3 {
- target-path = "/";
- __overlay__ {
- rpi_cirrus_reg_1v8: rpi_cirrus_reg_1v8 {
- compatible = "regulator-fixed";
- regulator-name = "RPi-Cirrus 1v8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- regulator-always-on;
- };
- };
- };
-
- fragment@4 {
- target = <&spidev0>;
- __overlay__ {
- status = "disabled";
- };
- };
-
- fragment@5 {
- target = <&spidev1>;
- __overlay__ {
- status = "disabled";
- };
- };
-
- fragment@6 {
- target = <&spi0>;
- __overlay__ {
- #address-cells = <1>;
- #size-cells = <0>;
- status = "okay";
- cs-gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
-
- wm5102@0{
- compatible = "wlf,wm5102";
- reg = <0>;
-
- pinctrl-names = "default";
- pinctrl-0 = <&wlf_5102_pins>;
-
- spi-max-frequency = <500000>;
-
- interrupt-parent = <&gpio>;
- interrupts = <27 8>;
- interrupt-controller;
- #interrupt-cells = <2>;
-
- gpio-controller;
- #gpio-cells = <2>;
-
- LDOVDD-supply = <&rpi_cirrus_reg_1v8>;
- AVDD-supply = <&rpi_cirrus_reg_1v8>;
- DBVDD1-supply = <&rpi_cirrus_reg_1v8>;
- DBVDD2-supply = <&vdd_3v3_reg>;
- DBVDD3-supply = <&vdd_3v3_reg>;
- CPVDD-supply = <&rpi_cirrus_reg_1v8>;
- SPKVDDL-supply = <&vdd_5v0_reg>;
- SPKVDDR-supply = <&vdd_5v0_reg>;
- DCVDD-supply = <&arizona_ldo1>;
-
- reset-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
- wlf,ldoena = <&gpio 22 GPIO_ACTIVE_HIGH>;
- wlf,gpio-defaults = <
- ARIZONA_GP_DEFAULT
- ARIZONA_GP_DEFAULT
- ARIZONA_GP_DEFAULT
- ARIZONA_GP_DEFAULT
- ARIZONA_GP_DEFAULT
- >;
- wlf,micd-configs = <0 1 0>;
- wlf,dmic-ref = <
- ARIZONA_DMIC_MICVDD
- ARIZONA_DMIC_MICBIAS2
- ARIZONA_DMIC_MICVDD
- ARIZONA_DMIC_MICVDD
- >;
- wlf,inmode = <
- ARIZONA_INMODE_DIFF
- ARIZONA_INMODE_DMIC
- ARIZONA_INMODE_SE
- ARIZONA_INMODE_DIFF
- >;
- status = "okay";
-
- arizona_ldo1: ldo1 {
- regulator-name = "LDO1";
- // default constraints as in
- // arizona-ldo1.c
- regulator-min-microvolt = <1200000>;
- regulator-max-microvolt = <1800000>;
- };
- };
- };
- };
-
- fragment@7 {
- target = <&i2c1>;
- __overlay__ {
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- wm8804@3b {
- compatible = "wlf,wm8804";
- reg = <0x3b>;
- status = "okay";
-
- pinctrl-names = "default";
- pinctrl-0 = <&wlf_8804_pins>;
-
- PVDD-supply = <&vdd_3v3_reg>;
- DVDD-supply = <&vdd_3v3_reg>;
- wlf,reset-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
- };
- };
- };
-
- fragment@8 {
- target = <&sound>;
- __overlay__ {
- compatible = "wlf,rpi-cirrus";
- i2s-controller = <&i2s>;
- status = "okay";
- };
- };
-};
+++ /dev/null
-// Definitions for RPi DAC
-/dts-v1/;
-/plugin/;
-
-/ {
- compatible = "brcm,bcm2835";
-
- fragment@0 {
- target = <&i2s>;
- __overlay__ {
- status = "okay";
- };
- };
-
- fragment@1 {
- target-path = "/";
- __overlay__ {
- pcm1794a-codec {
- #sound-dai-cells = <0>;
- compatible = "ti,pcm1794a";
- status = "okay";
- };
- };
- };
-
- fragment@2 {
- target = <&sound>;
- __overlay__ {
- compatible = "rpi,rpi-dac";
- i2s-controller = <&i2s>;
- status = "okay";
- };
- };
-};
+++ /dev/null
-/*
- * Device Tree overlay for rpi-display by Watterott
- *
- */
-
-/dts-v1/;
-/plugin/;
-
-/ {
- compatible = "brcm,bcm2835";
-
- fragment@0 {
- target = <&spi0>;
- __overlay__ {
- status = "okay";
- };
- };
-
- fragment@1 {
- target = <&spidev0>;
- __overlay__ {
- status = "disabled";
- };
- };
-
- fragment@2 {
- target = <&spidev1>;
- __overlay__ {
- status = "disabled";
- };
- };
-
- fragment@3 {
- target = <&gpio>;
- __overlay__ {
- rpi_display_pins: rpi_display_pins {
- brcm,pins = <18 23 24 25>;
- brcm,function = <1 1 1 0>; /* out out out in */
- brcm,pull = <0 0 0 2>; /* - - - up */
- };
- };
- };
-
- fragment@4 {
- target = <&spi0>;
- __overlay__ {
- /* needed to avoid dtc warning */
- #address-cells = <1>;
- #size-cells = <0>;
-
- rpidisplay: rpi-display@0{
- compatible = "ilitek,ili9341";
- reg = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&rpi_display_pins>;
-
- spi-max-frequency = <32000000>;
- rotate = <270>;
- bgr;
- fps = <30>;
- buswidth = <8>;
- reset-gpios = <&gpio 23 1>;
- dc-gpios = <&gpio 24 0>;
- led-gpios = <&gpio 18 0>;
- debug = <0>;
- };
-
- rpidisplay_ts: rpi-display-ts@1 {
- compatible = "ti,ads7846";
- reg = <1>;
-
- spi-max-frequency = <2000000>;
- interrupts = <25 2>; /* high-to-low edge triggered */
- interrupt-parent = <&gpio>;
- pendown-gpio = <&gpio 25 1>;
- ti,x-plate-ohms = /bits/ 16 <60>;
- ti,pressure-max = /bits/ 16 <255>;
- };
- };
- };
-
- fragment@10 {
- target = <&rpidisplay>;
- __dormant__ {
- backlight = <&backlight_gpio>;
- };
- };
-
- fragment@11 {
- target-path = "/";
- __dormant__ {
- backlight_gpio: backlight_gpio {
- compatible = "gpio-backlight";
- gpios = <&gpio 18 0>; /* GPIO_ACTIVE_HIGH */
- };
- };
- };
-
- fragment@20 {
- target = <&rpidisplay>;
- __dormant__ {
- backlight = <&backlight_pwm>;
- };
- };
-
- fragment@21 {
- target-path = "/";
- __dormant__ {
- backlight_pwm: backlight_pwm {
- compatible = "pwm-backlight";
- brightness-levels = <0 6 8 12 16 24 32 40 48 64 96 128 160 192 224 255>;
- default-brightness-level = <16>;
- pwms = <&pwm 0 200000>;
- };
- };
- };
-
- fragment@22 {
- target = <&pwm>;
- __dormant__ {
- assigned-clock-rates = <1000000>;
- status = "okay";
- };
- };
-
- fragment@23 {
- target = <&audio>;
- __dormant__ {
- brcm,disable-headphones;
- };
- };
-
- __overrides__ {
- speed = <&rpidisplay>,"spi-max-frequency:0";
- rotate = <&rpidisplay>,"rotate:0", /* fbtft */
- <&rpidisplay>,"rotation:0"; /* drm */
- fps = <&rpidisplay>,"fps:0";
- debug = <&rpidisplay>,"debug:0";
- xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0";
- swapxy = <&rpidisplay_ts>,"ti,swap-xy?";
- backlight = <&rpidisplay>,"led-gpios:4",
- <&rpi_display_pins>,"brcm,pins:0";
- drm = <&rpidisplay>, "compatible=multi-inno,mi0283qt",
- <&rpidisplay>, "spi-max-frequency:0=70000000",
- <&rpidisplay>, "reset-gpios:8=0", /* GPIO_ACTIVE_HIGH */
- <0>, "+10+11";
- backlight-pwm = <0>, "-10-11+20+21+22+23",
- <&rpi_display_pins>, "brcm,function:0=2"; /* Alt5 */
- };
-};
+++ /dev/null
-// Definitions for Rpi-Proto
-/dts-v1/;
-/plugin/;
-
-/ {
- compatible = "brcm,bcm2835";
-
- fragment@0 {
- target = <&i2s>;
- __overlay__ {
- status = "okay";
- };
- };
-
- fragment@1 {
- target = <&i2c1>;
- __overlay__ {
- #address-cells = <1>;
- #size-cells = <0>;
- status = "okay";
-
- wm8731@1a {
- #sound-dai-cells = <0>;
- compatible = "wlf,wm8731";
- reg = <0x1a>;
- status = "okay";
- };
- };
- };
-
- fragment@2 {
- target = <&sound>;
- __overlay__ {
- compatible = "rpi,rpi-proto";
- i2s-controller = <&i2s>;
- status = "okay";
- };
- };
-};
--- /dev/null
+/*
+ * Device Tree overlay for rpi-display by Watterott
+ *
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target = <&spidev0>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@2 {
+ target = <&spidev1>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@3 {
+ target = <&gpio>;
+ __overlay__ {
+ rpi_display_pins: rpi_display_pins {
+ brcm,pins = <18 23 24 25>;
+ brcm,function = <1 1 1 0>; /* out out out in */
+ brcm,pull = <0 0 0 2>; /* - - - up */
+ };
+ };
+ };
+
+ fragment@4 {
+ target = <&spi0>;
+ __overlay__ {
+ /* needed to avoid dtc warning */
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rpidisplay: rpi-display@0{
+ compatible = "ilitek,ili9341";
+ reg = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&rpi_display_pins>;
+
+ spi-max-frequency = <32000000>;
+ rotate = <270>;
+ bgr;
+ fps = <30>;
+ buswidth = <8>;
+ reset-gpios = <&gpio 23 1>;
+ dc-gpios = <&gpio 24 0>;
+ led-gpios = <&gpio 18 0>;
+ debug = <0>;
+ };
+
+ rpidisplay_ts: rpi-display-ts@1 {
+ compatible = "ti,ads7846";
+ reg = <1>;
+
+ spi-max-frequency = <2000000>;
+ interrupts = <25 2>; /* high-to-low edge triggered */
+ interrupt-parent = <&gpio>;
+ pendown-gpio = <&gpio 25 1>;
+ ti,x-plate-ohms = /bits/ 16 <60>;
+ ti,pressure-max = /bits/ 16 <255>;
+ };
+ };
+ };
+
+ fragment@10 {
+ target = <&rpidisplay>;
+ __dormant__ {
+ backlight = <&backlight_gpio>;
+ };
+ };
+
+ fragment@11 {
+ target-path = "/";
+ __dormant__ {
+ backlight_gpio: backlight_gpio {
+ compatible = "gpio-backlight";
+ gpios = <&gpio 18 0>; /* GPIO_ACTIVE_HIGH */
+ };
+ };
+ };
+
+ fragment@20 {
+ target = <&rpidisplay>;
+ __dormant__ {
+ backlight = <&backlight_pwm>;
+ };
+ };
+
+ fragment@21 {
+ target-path = "/";
+ __dormant__ {
+ backlight_pwm: backlight_pwm {
+ compatible = "pwm-backlight";
+ brightness-levels = <0 6 8 12 16 24 32 40 48 64 96 128 160 192 224 255>;
+ default-brightness-level = <16>;
+ pwms = <&pwm 0 200000>;
+ };
+ };
+ };
+
+ fragment@22 {
+ target = <&pwm>;
+ __dormant__ {
+ assigned-clock-rates = <1000000>;
+ status = "okay";
+ };
+ };
+
+ fragment@23 {
+ target = <&audio>;
+ __dormant__ {
+ brcm,disable-headphones;
+ };
+ };
+
+ __overrides__ {
+ speed = <&rpidisplay>,"spi-max-frequency:0";
+ rotate = <&rpidisplay>,"rotate:0", /* fbtft */
+ <&rpidisplay>,"rotation:0"; /* drm */
+ fps = <&rpidisplay>,"fps:0";
+ debug = <&rpidisplay>,"debug:0";
+ xohms = <&rpidisplay_ts>,"ti,x-plate-ohms;0";
+ swapxy = <&rpidisplay_ts>,"ti,swap-xy?";
+ backlight = <&rpidisplay>,"led-gpios:4",
+ <&rpi_display_pins>,"brcm,pins:0";
+ drm = <&rpidisplay>, "compatible=multi-inno,mi0283qt",
+ <&rpidisplay>, "spi-max-frequency:0=70000000",
+ <&rpidisplay>, "reset-gpios:8=0", /* GPIO_ACTIVE_HIGH */
+ <0>, "+10+11";
+ backlight-pwm = <0>, "-10-11+20+21+22+23",
+ <&rpi_display_pins>, "brcm,function:0=2"; /* Alt5 */
+ };
+};