stih410-b2260.dtb \
stih418-b2199.dtb \
stih418-b2264.dtb
+
+stm32mp13xx-dhcor-dhsbc-overlay-rb-tft32-v2-dtbs := \
+ stm32mp135f-dhcor-dhsbc.dtb \
+ stm32mp13xx-dhcor-dhsbc-overlay-rb-tft32-v2.dtbo
+
+stm32mp15xx-avenger96-overlay-644-100-x6-otm8009a-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-644-100-x6-otm8009a.dtbo
+
+stm32mp15xx-avenger96-overlay-644-100-x6-rpi7inch-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-644-100-x6-rpi7inch.dtbo
+
+stm32mp15xx-avenger96-overlay-fdcan1-x6-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-fdcan1-x6.dtbo
+
+stm32mp15xx-avenger96-overlay-fdcan2-x6-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-fdcan2-x6.dtbo
+
+stm32mp15xx-avenger96-overlay-i2c1-eeprom-x6-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-i2c1-eeprom-x6.dtbo
+
+stm32mp15xx-avenger96-overlay-i2c2-eeprom-x6-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-i2c2-eeprom-x6.dtbo
+
+stm32mp15xx-avenger96-overlay-ov5640-x7-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-ov5640-x7.dtbo
+
+stm32mp15xx-avenger96-overlay-spi2-eeprom-x6-dtbs := \
+ stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-spi2-eeprom-x6.dtbo
+
+stm32mp15xx-dhcom-drc02-overlay-wifi-rsi-dtbs := \
+ stm32mp153c-dhcom-drc02.dtb \
+ stm32mp15xx-dhcom-drc02-overlay-wifi-rsi.dtbo
+
+stm32mp15xx-dhcom-pdk2-overlay-460-200-x11-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-460-200-x11.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-497-200-x12-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-497-200-x12.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-531-100-x21-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-531-100-x21.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-531-100-x22-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-531-100-x22.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-560-200-x12-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-560-200-x12.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-638-100-x12-rpi7inch-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-638-100-x12-rpi7inch.dtbo \
+
+stm32mp15xx-dhcom-pdk2-overlay-672-100-x18-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-672-100-x18.dtbo \
+
+stm32mp15xx-dhcom-picoitx-overlay-548-200-x2-mi0700s4t-6-dtbs := \
+ stm32mp157c-dhcom-picoitx.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-548-200-x2-mi0700s4t-6.dtbo \
+
+stm32mp15xx-dhcom-picoitx-overlay-553-100-x2-tst043015cmhx-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-553-100-x2-tst043015cmhx.dtbo \
+
+stm32mp15xx-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh-dtbs := \
+ stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtbo \
+
dtb-$(CONFIG_ARCH_STM32) += \
stm32f429-disco.dtb \
stm32f469-disco.dtb \
stm32h750i-art-pi.dtb \
stm32mp133c-prihmb.dtb \
stm32mp135f-dhcor-dhsbc.dtb \
+ stm32mp13xx-dhcor-dhsbc-overlay-rb-tft32-v2.dtb \
+ stm32mp13xx-dhcor-dhsbc-overlay-rb-tft32-v2.dtbo \
stm32mp135f-dk.dtb \
stm32mp151a-prtt1a.dtb \
stm32mp151a-prtt1c.dtb \
stm32mp151c-mect1s.dtb \
stm32mp151c-plyaqm.dtb \
stm32mp153c-dhcom-drc02.dtb \
+ stm32mp15xx-dhcom-drc02-overlay-wifi-rsi.dtb \
+ stm32mp15xx-dhcom-drc02-overlay-wifi-rsi.dtbo \
stm32mp153c-dhcor-drc-compact.dtb \
stm32mp153c-lxa-fairytux2-gen1.dtb \
stm32mp153c-lxa-fairytux2-gen2.dtb \
stm32mp153c-lxa-tac-gen3.dtb \
stm32mp153c-mecio1r1.dtb \
stm32mp157a-avenger96.dtb \
+ stm32mp15xx-avenger96-overlay-644-100-x6-otm8009a.dtb \
+ stm32mp15xx-avenger96-overlay-644-100-x6-otm8009a.dtbo \
+ stm32mp15xx-avenger96-overlay-644-100-x6-rpi7inch.dtb \
+ stm32mp15xx-avenger96-overlay-644-100-x6-rpi7inch.dtbo \
+ stm32mp15xx-avenger96-overlay-fdcan1-x6.dtb \
+ stm32mp15xx-avenger96-overlay-fdcan1-x6.dtbo \
+ stm32mp15xx-avenger96-overlay-fdcan2-x6.dtb \
+ stm32mp15xx-avenger96-overlay-fdcan2-x6.dtbo \
+ stm32mp15xx-avenger96-overlay-i2c1-eeprom-x6.dtb \
+ stm32mp15xx-avenger96-overlay-i2c1-eeprom-x6.dtbo \
+ stm32mp15xx-avenger96-overlay-i2c2-eeprom-x6.dtb \
+ stm32mp15xx-avenger96-overlay-i2c2-eeprom-x6.dtbo \
+ stm32mp15xx-avenger96-overlay-ov5640-x7.dtb \
+ stm32mp15xx-avenger96-overlay-ov5640-x7.dtbo \
+ stm32mp15xx-avenger96-overlay-spi2-eeprom-x6.dtb \
+ stm32mp15xx-avenger96-overlay-spi2-eeprom-x6.dtbo \
stm32mp157a-dhcor-avenger96.dtb \
stm32mp157a-dk1.dtb \
stm32mp157a-dk1-scmi.dtb \
stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
stm32mp157a-stinger96.dtb \
stm32mp157c-dhcom-pdk2.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-460-200-x11.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-460-200-x11.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-497-200-x12.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-497-200-x12.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-531-100-x21.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-531-100-x21.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-531-100-x22.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-531-100-x22.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-560-200-x12.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-560-200-x12.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-638-100-x12-rpi7inch.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-638-100-x12-rpi7inch.dtbo \
+ stm32mp15xx-dhcom-pdk2-overlay-672-100-x18.dtb \
+ stm32mp15xx-dhcom-pdk2-overlay-672-100-x18.dtbo \
stm32mp157c-dhcom-picoitx.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-548-200-x2-mi0700s4t-6.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-548-200-x2-mi0700s4t-6.dtbo \
+ stm32mp15xx-dhcom-picoitx-overlay-553-100-x2-tst043015cmhx.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-553-100-x2-tst043015cmhx.dtbo \
+ stm32mp15xx-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtb \
+ stm32mp15xx-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtbo \
stm32mp157c-dk2.dtb \
stm32mp157c-dk2-scmi.dtb \
stm32mp157c-ed1.dtb \
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2024 Marek Vasut
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ button-1 {
+ label = "KEY2";
+ linux,code = <KEY_2>;
+ gpios = <&gpiog 10 GPIO_ACTIVE_LOW>;
+ wakeup-source;
+ };
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ poll-interval = <20>;
+
+ button-0 {
+ label = "KEY1";
+ linux,code = <KEY_1>;
+ /* IRQ bank A shared with PA1 touch controller */
+ gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
+ };
+
+ button-2 {
+ label = "KEY3";
+ linux,code = <KEY_3>;
+ /* IRQ line 0 taken by PI0 / SoM RTC IRQ */
+ gpios = <&gpiod 0 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&m_can1 {
+ /* Collides with KEY2/PG10 KEY3/PD0 */
+ status = "disabled";
+};
+
+&m_can2 {
+ /* Collides with TP_CS/PE6 */
+ status = "disabled";
+};
+
+&usart2 {
+ /* Collides with TP_IRQ/PA1 */
+ status = "disabled";
+};
+
+&spi3 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cs-gpios = <&gpiof 3 0>, <&gpioe 0 0>;
+ status = "okay";
+
+ lcd@0 {
+ compatible = "adafruit,yx240qv29", "ilitek,ili9341";
+ reg = <0>;
+ spi-max-frequency = <10000000>;
+ dc-gpios = <&gpioe 4 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpiod 3 GPIO_ACTIVE_HIGH>;
+ rotation = <90>;
+ };
+
+ tp@1 {
+ compatible = "ti,tsc2046";
+ reg = <1>;
+ interrupt-parent = <&gpioa>;
+ interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+ pendown-gpio = <&gpioa 1 GPIO_ACTIVE_LOW>;
+ spi-max-frequency = <500000>;
+ ti,pressure-max = /bits/ 16 <255>;
+ ti,x-plate-ohms = /bits/ 16 <60>;
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+#include <dt-bindings/gpio/gpio.h>
+
+/dts-v1/;
+/plugin/;
+
+&dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ phy-dsi-supply = <®18>;
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ dsi_in: endpoint {
+ remote-endpoint = <<dc_ep1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ dsi_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+
+ panel@0 {
+ compatible = "orisetech,otm8009a";
+ reg = <0>;
+ reset-gpios = <&gpiod 8 GPIO_ACTIVE_LOW>;
+ power-supply = <&v3v3>;
+ status = "okay";
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+ };
+};
+
+<dc {
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ltdc_ep1_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&dsi_in>;
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen: touchscreen@38 {
+ };
+
+ attiny: regulator@45 {
+ };
+};
+
+#include "stm32mp15xx-dhsom-overlay-panel-dsi-rpi7inch.dtsi"
+
+<dc {
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ltdc_ep_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&dsi_in>;
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&m_can1 {
+ status = "okay";
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&m_can2 {
+ status = "okay";
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@56 {
+ compatible = "atmel,24c04";
+ reg = <0x56>;
+ pagesize = <16>;
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@56 {
+ compatible = "atmel,24c04";
+ reg = <0x56>;
+ pagesize = <16>;
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+#include <dt-bindings/clock/stm32mp1-clks.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ camera0_1v5_pwr: regulator-camera0-1v5 {
+ compatible = "regulator-fixed";
+ regulator-name = "camera0-1v5-reg";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ };
+
+ camera0_1v8_pwr: regulator-camera0-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "camera0-1v8-reg";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ camera0_2v8_pwr: regulator-camera0-2v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "camera0-2v8-reg";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ };
+};
+
+&dcmi {
+ status = "okay";
+};
+
+&dcmi_0 {
+ hsync-active = <0>;
+ vsync-active = <0>;
+ pclk-sample = <0>;
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ camera@3c {
+ compatible = "ovti,ov5640";
+ reg = <0x3c>;
+ clocks = <&rcc CK_MCO1>;
+ clock-names = "xclk";
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&mco1_pins_a>;
+ pinctrl-1 = <&mco1_sleep_pins_a>;
+ assigned-clocks = <&rcc CK_MCO1>;
+ assigned-clock-parents = <&rcc CK_HSE>;
+ assigned-clock-rates = <24000000>;
+ AVDD-supply = <&camera0_2v8_pwr>;
+ DOVDD-supply = <&camera0_1v8_pwr>;
+ DVDD-supply = <&camera0_1v5_pwr>;
+ /* GPIO-J on the Dragonboard Dual-Leopard OV5640 board */
+ powerdown-gpios = <&gpiob 5 GPIO_ACTIVE_HIGH>;
+ /* GPIO-I on the Dragonboard Dual-Leopard OV5640 board */
+ reset-gpios = <&gpioa 12 GPIO_ACTIVE_LOW>;
+ rotation = <180>;
+ status = "okay";
+
+ port {
+ ov5640_0: endpoint {
+ remote-endpoint = <&stmipi_0>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
+
+&stmipi {
+ status = "okay";
+};
+
+&stmipi_0 {
+ data-lanes = <1 2>;
+ remote-endpoint = <&ov5640_0>;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&spi2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi2_pins_a>;
+ status = "okay";
+ cs-gpios = <&gpioi 0 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@0 {
+ compatible = "microchip,25aa010a", "atmel,at25";
+ reg = <0>;
+ address-width = <8>;
+ pagesize = <16>;
+ size = <128>;
+ spi-max-frequency = <5000000>;
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&sdmmc3 {
+ broken-cd;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi.dtsi"
+
+&{/} {
+ lvds-encoder {
+ compatible = "onnn,fin3385", "lvds-encoder";
+ pclk-sample = <1>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ lvds_bridge_in: endpoint {
+ remote-endpoint = <<dc_dpi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ lvds_bridge_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+ };
+};
+
+&display_bl {
+ pwms = <&pwm2 3 5000000 0>;
+};
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ili251x@41 {
+ compatible = "ilitek,ili251x";
+ reg = <0x41>;
+ interrupt-parent = <&gpioi>;
+ interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
+ touchscreen-size-x = <16384>;
+ touchscreen-size-y = <9600>;
+ touchscreen-inverted-x;
+ touchscreen-inverted-y;
+ };
+
+ eeprom@50 {
+ compatible = "atmel,24c04";
+ reg = <0x50>;
+ pagesize = <16>;
+ };
+};
+
+<dc_dpi_out {
+ remote-endpoint = <&lvds_bridge_in>;
+};
+
+&panel {
+ compatible = "chefree,ch101olhlwh-002";
+};
+
+&panel_in {
+ remote-endpoint = <&lvds_bridge_out>;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pwm/pwm.h>
+
+&{/} {
+ display_bl: display-bl {
+ compatible = "pwm-backlight";
+ brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
+ default-brightness-level = <8>;
+ enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
+ power-supply = <®_panel_bl>;
+ status = "okay";
+ };
+
+ panel: panel {
+ backlight = <&display_bl>;
+ power-supply = <®_panel_bl>;
+
+ port {
+ panel_in: endpoint {
+ };
+ };
+ };
+
+ reg_panel_bl: regulator-panel-bl {
+ compatible = "regulator-fixed";
+ regulator-name = "panel_backlight";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <®_panel_supply>;
+ };
+
+ reg_panel_supply: regulator-panel-supply {
+ compatible = "regulator-fixed";
+ regulator-name = "panel_supply";
+ regulator-min-microvolt = <24000000>;
+ regulator-max-microvolt = <24000000>;
+ };
+};
+
+&timers2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ pwm2: pwm {
+ #pwm-cells = <3>;
+ pinctrl-0 = <&pwm2_pins_a>;
+ pinctrl-names = "default";
+ status = "okay";
+ };
+
+ timer@1 {
+ reg = <1>;
+ status = "okay";
+ };
+};
+
+<dc {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <<dc_pins_b>;
+ pinctrl-1 = <<dc_sleep_pins_b>;
+ status = "okay";
+
+ port {
+ ltdc_dpi_out: endpoint {
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&fmc {
+ #address-cells = <2>;
+ #size-cells = <1>;
+
+ sram@3,0 {
+ compatible = "mtd-ram";
+ reg = <3 0x0 0x80000>;
+ bank-width = <2>;
+
+ /* Timing values are in nS */
+ st,fmc2-ebi-cs-mux-enable;
+ st,fmc2-ebi-cs-transaction-type = <4>;
+ st,fmc2-ebi-cs-buswidth = <16>;
+ st,fmc2-ebi-cs-address-setup-ns = <6>;
+ st,fmc2-ebi-cs-address-hold-ns = <6>;
+ st,fmc2-ebi-cs-data-setup-ns = <127>;
+ st,fmc2-ebi-cs-bus-turnaround-ns = <9>;
+ st,fmc2-ebi-cs-data-hold-ns = <9>;
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi.dtsi"
+
+&display_bl {
+ pwms = <&pwm2 3 500000 PWM_POLARITY_INVERTED>;
+};
+
+<dc_dpi_out {
+ remote-endpoint = <&panel_in>;
+};
+
+&panel {
+ compatible = "dataimage,scf0700c48ggu18";
+};
+
+&panel_in {
+ remote-endpoint = <<dc_dpi_out>;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi"
+
+&{/} {
+ gpio-keys-polled {
+ /* BUTTON1 GPIO-B conflicts with touchscreen reset */
+ button-1 {
+ /* Use status as /delete-node/ does not work in DTOs */
+ status = "disabled";
+ };
+ };
+
+ led {
+ /* LED7 GPIO-H conflicts with touchscreen IRQ */
+ led-2 {
+ /* Use status as /delete-node/ does not work in DTOs */
+ status = "disabled";
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@56 {
+ compatible = "atmel,24c04";
+ reg = <0x56>;
+ pagesize = <16>;
+ };
+};
+
+&spi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi1_pins_a>;
+ status = "okay";
+ cs-gpios = <&gpioz 3 0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@0 {
+ compatible = "microchip,25aa010a", "atmel,at25";
+ reg = <0>;
+ address-width = <8>;
+ pagesize = <16>;
+ size = <128>;
+ spi-max-frequency = <5000000>;
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@56 {
+ compatible = "atmel,24c04";
+ reg = <0x56>;
+ pagesize = <16>;
+ };
+};
+
+/* SPI2 is not connected on STM32MP1 DHCOM SoM */
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi.dtsi"
+
+&{/} {
+ gpio-keys {
+ /*
+ * The EXTi IRQ line 6 is shared with touchscreen IRQ,
+ * so operate button-1 as polled GPIO key.
+ */
+ button-1 {
+ /* Use status as /delete-node/ does not work in DTOs */
+ status = "disabled";
+ };
+ };
+
+ gpio-keys-polled {
+ button-1 {
+ label = "TA2-GPIO-B";
+ linux,code = <KEY_B>;
+ gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ led {
+ /* LED5 GPIO-E conflicts with touchscreen IRQ */
+ led-0 {
+ /* Use status as /delete-node/ does not work in DTOs */
+ status = "disabled";
+ };
+ };
+};
+
+&display_bl {
+ pwms = <&pwm2 3 500000 PWM_POLARITY_INVERTED>;
+};
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@38 {
+ compatible = "edt,edt-ft5406";
+ reg = <0x38>;
+ /* Touchscreen IRQ GPIO-E conflicts with LED5 GPIO */
+ interrupt-parent = <&gpioc>;
+ interrupts = <6 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
+ };
+};
+
+<dc_dpi_out {
+ remote-endpoint = <&panel_in>;
+};
+
+&panel {
+ compatible = "edt,etm0700g0edh6";
+};
+
+&panel_in {
+ remote-endpoint = <<dc_dpi_out>;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen: touchscreen@38 {
+ };
+
+ attiny: regulator@45 {
+ };
+};
+
+#include "stm32mp15xx-dhsom-overlay-panel-dsi-rpi7inch.dtsi"
+
+<dc {
+ status = "okay";
+ port {
+ ltdc_ep_out: endpoint {
+ remote-endpoint = <&dsi_in>;
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&m_can2 {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&m_can2_pins_a>;
+ pinctrl-1 = <&m_can2_sleep_pins_a>;
+ status = "okay";
+};
clock-frequency = <24000000>;
};
- display_bl: display-bl {
- compatible = "pwm-backlight";
- pwms = <&pwm2 3 500000 PWM_POLARITY_INVERTED>;
- brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
- default-brightness-level = <8>;
- enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
- power-supply = <®_panel_bl>;
- };
-
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <20>;
label = "green:led5";
gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>;
default-state = "off";
- status = "disabled";
};
led-1 {
};
};
- panel {
- compatible = "edt,etm0700g0edh6";
- backlight = <&display_bl>;
- power-supply = <®_panel_bl>;
-
- port {
- lcd_panel_in: endpoint {
- remote-endpoint = <&lcd_display_out>;
- };
- };
- };
-
- reg_panel_bl: regulator-panel-bl {
- compatible = "regulator-fixed";
- regulator-name = "panel_backlight";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- vin-supply = <®_panel_supply>;
- };
-
- reg_panel_supply: regulator-panel-supply {
- compatible = "regulator-fixed";
- regulator-name = "panel_supply";
- regulator-min-microvolt = <24000000>;
- regulator-max-microvolt = <24000000>;
- };
-
sound {
compatible = "audio-graph-card";
widgets = "Headphone", "Headphone Jack",
};
};
-
- touchscreen@38 {
- compatible = "edt,edt-ft5406";
- reg = <0x38>;
- interrupt-parent = <&gpioc>;
- interrupts = <6 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
- };
-};
-
-<dc {
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <<dc_pins_b>;
- pinctrl-1 = <<dc_sleep_pins_b>;
- status = "okay";
-
- port {
- lcd_display_out: endpoint {
- remote-endpoint = <&lcd_panel_in>;
- };
- };
};
&sai2 {
};
};
-&timers2 {
- /* spare dmas for other usage (un-delete to enable pwm capture) */
- /delete-property/dmas;
- /delete-property/dma-names;
- status = "okay";
- pwm2: pwm {
- pinctrl-0 = <&pwm2_pins_a>;
- pinctrl-names = "default";
- status = "okay";
- };
- timer@1 {
- status = "okay";
- };
-};
-
&usart3 {
pinctrl-names = "default";
pinctrl-0 = <&usart3_pins_a>;
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021 Andreas Geisreiter <ageisreiter@dh-electronics.com>
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi.dtsi"
+
+&display_bl {
+ pwms = <&pwm2 3 10000000 0>;
+};
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@50 {
+ compatible = "atmel,24c04";
+ reg = <0x50>;
+ pagesize = <16>;
+ };
+};
+
+<dc_dpi_out {
+ remote-endpoint = <&panel_in>;
+};
+
+&panel {
+ compatible = "multi-inno,mi0700s4t-6";
+};
+
+&panel_in {
+ remote-endpoint = <<dc_dpi_out>;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2023 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi.dtsi"
+
+&display_bl {
+ pwms = <&pwm2 3 10000000 0>;
+};
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ eeprom@50 {
+ compatible = "atmel,24c04";
+ reg = <0x50>;
+ pagesize = <16>;
+ };
+};
+
+<dc_dpi_out {
+ remote-endpoint = <&panel_in>;
+};
+
+&panel {
+ compatible = "team-source-display,tst043015cmhx";
+};
+
+&panel_in {
+ remote-endpoint = <<dc_dpi_out>;
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2020 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "stm32mp15xx-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi"
&i2c4 {
stmipi: stmipi@14 {
compatible = "st,st-mipid02";
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&mco1_pins_a>;
- pinctrl-1 = <&mco1_sleep_pins_a>;
reg = <0x14>;
clocks = <&rcc CK_MCO1>;
clock-names = "xclk";
- assigned-clocks = <&rcc CK_MCO1>;
- assigned-clock-parents = <&rcc CK_HSE>;
- assigned-clock-rates = <24000000>;
VDDE-supply = <&v1v8>;
VDDIN-supply = <&v1v8>;
reset-gpios = <&gpioz 0 GPIO_ACTIVE_LOW>;
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ panel {
+ compatible = "powertip,ph800480t013-idf02";
+ backlight = <&attiny>;
+ power-supply = <&attiny>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&bridge_out>;
+ };
+ };
+ };
+};
+
+&attiny {
+ compatible = "raspberrypi,7inch-touchscreen-panel-regulator";
+ gpio-controller;
+ #gpio-cells = <2>;
+ reg = <0x45>;
+};
+
+&dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ phy-dsi-supply = <®18>;
+ status = "okay";
+
+ bridge@0 {
+ compatible = "toshiba,tc358762";
+ reg = <0>;
+ reset-gpios = <&attiny 0 GPIO_ACTIVE_HIGH>;
+ vddc-supply = <&attiny>;
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ bridge_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ bridge_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ dsi_in: endpoint {
+ remote-endpoint = <<dc_ep_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ dsi_out: endpoint {
+ remote-endpoint = <&bridge_in>;
+ };
+ };
+ };
+};
+
+&touchscreen {
+ compatible = "edt,edt-ft5406";
+ reg = <0x38>;
+ reset-gpios = <&attiny 1 GPIO_ACTIVE_LOW>;
+ /*
+ * Disabled, since the IRQ line is not on
+ * the FPC cable, so we cannot get touch
+ * IRQs unless its connected otherwise. In
+ * that case, add entry like this one and
+ * enable below.
+ *
+ * interrupt-parent = <&gpiog>;
+ * interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+ */
+ status = "disabled";
+};