arm64: meson: khadas-vim3l: add TS050 DSI panel overlay
authorNeil Armstrong <neil.armstrong@linaro.org>
Wed, 3 Apr 2024 07:46:37 +0000 (09:46 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Wed, 10 Apr 2024 08:53:24 +0000 (10:53 +0200)
This add dtbo overlay to support the Khadas TS050 panel on the
Khadas VIM3 & VIM3L boards.

Link: https://lore.kernel.org/r/20240403-amlogic-v6-4-upstream-dsi-ccf-vim3-v12-6-99ecdfdc87fc@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/Makefile
arch/arm64/boot/dts/amlogic/meson-khadas-vim3-ts050.dtso [new file with mode: 0644]

index 1ab160bf928ae4306768bbf1707325113d6f9bee..0b7961de3db73d15237ed21bb29d9cbbce4d0399 100644 (file)
@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-bananapi-m2s.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3-ts050.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-bananapi-cm4-cm4io.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
@@ -76,6 +77,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m2-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l-ts050.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-s905d3-libretech-cc.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
@@ -86,3 +88,5 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
 # Overlays
 meson-g12a-fbx8am-brcm-dtbs    := meson-g12a-fbx8am.dtb meson-g12a-fbx8am-brcm.dtbo
 meson-g12a-fbx8am-realtek-dtbs := meson-g12a-fbx8am.dtb meson-g12a-fbx8am-realtek.dtbo
+meson-g12b-a311d-khadas-vim3-ts050-dtbs := meson-g12b-a311d-khadas-vim3.dtb meson-khadas-vim3-ts050.dtbo
+meson-sm1-khadas-vim3l-ts050-dtbs      := meson-sm1-khadas-vim3l.dtb meson-khadas-vim3-ts050.dtbo
diff --git a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3-ts050.dtso b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3-ts050.dtso
new file mode 100644 (file)
index 0000000..a41b4e6
--- /dev/null
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/g12a-clkc.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/amlogic,meson-g12a-gpio-intc.h>
+
+/dts-v1/;
+/plugin/;
+
+/*
+ * Enable Khadas TS050 DSI Panel + Touch Controller
+ * on Khadas VIM3 (A311D) and VIM3L (S905D3)
+ */
+
+&{/} {
+       panel_backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm_AO_cd 0 25000 0>;
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <200>;
+       };
+};
+
+&i2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       touch-controller@38 {
+               compatible = "edt,edt-ft5206";
+               reg = <0x38>;
+               interrupt-parent = <&gpio_intc>;
+               interrupts = <IRQID_GPIOA_5 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio_expander 6 GPIO_ACTIVE_LOW>;
+               touchscreen-size-x = <1080>;
+               touchscreen-size-y = <1920>;
+               status = "okay";
+       };
+};
+
+&mipi_dsi {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       assigned-clocks = <&clkc CLKID_GP0_PLL>,
+                         <&clkc CLKID_MIPI_DSI_PXCLK_SEL>,
+                         <&clkc CLKID_MIPI_DSI_PXCLK>,
+                         <&clkc CLKID_CTS_ENCL_SEL>,
+                         <&clkc CLKID_VCLK2_SEL>;
+       assigned-clock-parents = <0>,
+                                <&clkc CLKID_GP0_PLL>,
+                                <0>,
+                                <&clkc CLKID_VCLK2_DIV1>,
+                                <&clkc CLKID_GP0_PLL>;
+       assigned-clock-rates = <960000000>,
+                              <0>,
+                              <960000000>,
+                              <0>,
+                              <0>;
+
+       panel@0 {
+               compatible = "khadas,ts050";
+               reset-gpios = <&gpio_expander 0 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&gpio_expander 1 GPIO_ACTIVE_HIGH>;
+               power-supply = <&vcc_3v3>;
+               backlight = <&panel_backlight>;
+               reg = <0>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@1 {
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+};
+
+&mipi_analog_dphy {
+       status = "okay";
+};
+
+&mipi_dphy {
+       status = "okay";
+};
+
+&pwm_AO_cd {
+       pinctrl-0 = <&pwm_ao_c_6_pins>, <&pwm_ao_d_e_pins>;
+};