diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index e5c0e2e00f66d..7a2f9af94c284 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -510,6 +510,23 @@ dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtbo talos-lyra-evk-camx-dtbs := talos-lyra-evk.dtb talos-lyra-evk-camx.dtbo dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-camx.dtb +talos-lyra-evk-lvds-auo,g133han01-dtbs := \ + talos-lyra-evk.dtb talos-lyra-evk-lvds-auo,g133han01.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-lvds-auo,g133han01.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-lvds-auo,g133han01.dtbo +talos-lyra-evk-dlc0697-dtbs := talos-lyra-evk.dtb talos-lyra-evk-dlc0697.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-dlc0697.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-dlc0697.dtbo + +talos-lyra-evk-raspberrypi-dsi-7inch-dtbs := \ + talos-lyra-evk.dtb talos-lyra-evk-raspberrypi-dsi-7inch.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-raspberrypi-dsi-7inch.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-raspberrypi-dsi-7inch.dtbo + +talos-lyra-evk-waveshare-dsi-8inch-dtbs := \ + talos-lyra-evk.dtb talos-lyra-evk-waveshare-dsi-8inch.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-waveshare-dsi-8inch.dtb +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-waveshare-dsi-8inch.dtbo x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-dlc0697.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-dlc0697.dtso new file mode 100644 index 0000000000000..b79e544597258 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-dlc0697.dtso @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include + +&{/} { + backlight: backlight { + compatible = "gpio-backlight"; + gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; + }; +}; + +&hdmi_bridge { + status = "disabled"; +}; + +&hdmi_connector { + status = "disabled"; +}; + +&mdss_dsi0 { + #address-cells = <1>; + #size-cells = <0>; + + panel@0 { + compatible = "dlc,dlc0697", "ilitek,ili7807s"; + reg = <0>; + + reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>; + backlight = <&backlight>; + + vddi-supply = <&vreg_s4a>; + avdd-supply = <&vreg_disp_3p3>; + avee-supply = <&vreg_disp_3p3>; + + pinctrl-0 = <&panel_rst_n &panel_te_pin>; + pinctrl-1 = <&panel_rst_n_suspend>; + pinctrl-names = "default", "sleep"; + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&panel_in>; +}; + +&tlmm { + panel_te_pin: panel-te-pin-state { + pins = "gpio98"; + function = "mdp_vsync"; + drive-strength = <2>; + bias-pull-down; + }; + + panel_rst_n: panel-rst-n-state { + pins = "gpio118"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + + panel_rst_n_suspend: panel-rst-n-suspend-state { + pins = "gpio118"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso new file mode 100644 index 0000000000000..8c592e6317c30 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +/dts-v1/; +/plugin/; + +#include +#include +#include +#include + +&{/} { + bklt_pwm: pwm { + compatible = "clk-pwm"; + #pwm-cells = <2>; + assigned-clock-parents = <&rpmhcc RPMH_CXO_CLK>; + assigned-clocks = <&gcc GCC_GP3_CLK_SRC>; + clocks = <&gcc GCC_GP3_CLK>; + pinctrl-0 = <&bklt_pwm_default>; + pinctrl-names = "default"; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&bklt_pwm 0 100000>; + power-supply = <&vreg_disp_3p3>; + enable-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; + brightness-levels = <0 255>; + num-interpolated-steps = <255>; + default-brightness-level = <128>; + }; + + panel-lvds { + compatible = "auo,g133han01"; + power-supply = <&vreg_disp_3p3>; + backlight = <&backlight>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* LVDS Channel A - odd pixels */ + port@0 { + reg = <0>; + dual-lvds-odd-pixels; + + lvds_panel_out_a: endpoint { + remote-endpoint = <&sn65dsi84_out_a>; + }; + }; + + /* LVDS Channel B - even pixels */ + port@1 { + reg = <1>; + dual-lvds-even-pixels; + + lvds_panel_out_b: endpoint { + remote-endpoint = <&sn65dsi84_out_b>; + }; + }; + }; + }; +}; + +&hdmi_connector { + status = "disabled"; +}; + +&i2c5 { + #address-cells = <1>; + #size-cells = <0>; + + bridge@2c { + compatible = "ti,sn65dsi84"; + reg = <0x2c>; + enable-gpios = <&tlmm 61 GPIO_ACTIVE_HIGH>; + interrupts-extended = <&tlmm 60 IRQ_TYPE_EDGE_FALLING>; + vcc-supply = <&vreg_s4a>; + + pinctrl-0 = <&bridge_irq_pin &bridge_rst_pin>; + pinctrl-names = "default"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sn65dsi84_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + data-lanes = <1 2 3 4>; + }; + }; + + port@2 { + reg = <2>; + + sn65dsi84_out_a: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&lvds_panel_out_a>; + }; + }; + + port@3 { + reg = <3>; + + sn65dsi84_out_b: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&lvds_panel_out_b>; + }; + }; + }; + }; +}; + +&hdmi_bridge { + status = "disabled"; +}; + +&tlmm { + bklt_pwm_default: bklt-pwm-default-state { + pins = "gpio59"; + function = "gcc_gp"; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&sn65dsi84_in>; + data-lanes = <0 1 2 3>; +}; diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso new file mode 100644 index 0000000000000..6dafdbb87d3d0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include + +&{/} { + display_bl: backlight { + compatible = "pwm-backlight"; + power-supply = <®_display>; + pwms = <&mcu 0 255 0>; + }; + + reg_display: regulator-display { + compatible = "regulator-fixed"; + regulator-name = "rpi-display"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + reg_dsi_touch: regulator-dsi-touch { + compatible = "regulator-fixed"; + gpio = <&mcu 1 GPIO_ACTIVE_HIGH>; + regulator-name = "rpi-touch"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + startup-delay-us = <50000>; + enable-active-high; + }; +}; + +&hdmi_bridge { + status = "disabled"; +}; + +&hdmi_connector { + status = "disabled"; +}; + +&i2c2 { + #address-cells = <1>; + #size-cells = <0>; + + mcu: gpio@45 { + compatible = "raspberrypi,touchscreen-panel-regulator-v2"; + reg = <0x45>; + gpio-controller; + #gpio-cells = <2>; + #pwm-cells = <3>; + }; + + touchscreen@5d { + compatible = "goodix,gt911"; + reg = <0x5d>; + AVDD28-supply = <®_dsi_touch>; + touchscreen-size-x = <720>; + touchscreen-size-y = <1280>; + }; +}; + +&mdss_dsi0 { + #address-cells = <1>; + #size-cells = <0>; + + panel@0 { + compatible = "raspberrypi,dsi-7inch", "ilitek,ili9881c"; + reg = <0>; + + reset-gpios = <&mcu 0 GPIO_ACTIVE_LOW>; + power-supply = <®_display>; + iovcc-supply = <&vreg_s4a>; + backlight = <&display_bl>; + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&panel_in>; + data-lanes = <0 1>; +}; diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso new file mode 100644 index 0000000000000..e9a8fdf0c179b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ +/dts-v1/; +/plugin/; + +#include + +&{/} { + panel_avdd: regulator-panel-avdd { + compatible = "regulator-fixed"; + regulator-name = "panel-avdd"; + gpios = <&wsgpio 0 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + panel_iovcc: regulator-panel-iovcc { + compatible = "regulator-fixed"; + regulator-name = "panel-iovcc"; + gpios = <&wsgpio 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&hdmi_bridge { + status = "disabled"; +}; + +&hdmi_connector { + status = "disabled"; +}; + +&i2c2 { + #address-cells = <1>; + #size-cells = <0>; + + wsgpio: gpio@45 { + compatible = "waveshare,dsi-touch-gpio"; + reg = <0x45>; + gpio-controller; + #gpio-cells = <2>; + }; + + touchscreen@5d { + compatible = "goodix,gt9271"; + reg = <0x5d>; + reset-gpios = <&wsgpio 9 GPIO_ACTIVE_HIGH>; + }; +}; + +&mdss_dsi0 { + #address-cells = <1>; + #size-cells = <0>; + + panel@0 { + compatible = "waveshare,8.0-dsi-touch-a", "jadard,jd9365da-h3"; + reg = <0>; + + reset-gpios = <&wsgpio 1 GPIO_ACTIVE_LOW>; + vccio-supply = <&panel_iovcc>; + vdd-supply = <&panel_avdd>; + backlight = <&wsgpio>; + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&panel_in>; +}; diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts index 41d01bd363962..9fd1d9b625a4e 100644 --- a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts @@ -4,6 +4,7 @@ */ /dts-v1/; +#include #include #include "talos-lyra-evk-som.dtsi" @@ -15,6 +16,8 @@ aliases { serial1 = &uart7; + i2c2 = &i2c2; + i2c5 = &i2c5; }; dp0-connector { @@ -31,25 +34,25 @@ }; }; - hdmi-connector { + hdmi_connector: hdmi-connector { compatible = "hdmi-connector"; type = "a"; port { - hdmi_con: endpoint { - remote-endpoint = <<9611_out>; + hdmi_connector_out: endpoint { + remote-endpoint = <&hdmi_bridge_out>; }; }; }; - vreg_lt9611_vcc: regulator-lt9611-vcc { + vreg_disp_3p3: regulator-disp-3p3 { compatible = "regulator-fixed"; - regulator-name = "lt9611_vcc"; + regulator-name = "vreg_disp_3p3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&tlmm 3 GPIO_ACTIVE_HIGH>; enable-active-high; - pinctrl-0 = <<9611_vcc_pin>; + pinctrl-0 = <&lcd_bias_en>; pinctrl-names = "default"; }; @@ -145,15 +148,15 @@ &i2c2 { status = "okay"; - lt9611uxd: lt9611uxd@41 { + hdmi_bridge: hdmi-bridge@41 { compatible = "lontium,lt9611uxd"; reg = <0x41>; interrupts-extended = <&tlmm 60 IRQ_TYPE_EDGE_FALLING>; reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; - vcc-supply = <&vreg_lt9611_vcc>; + vcc-supply = <&vreg_disp_3p3>; vdd-supply = <&vreg_s4a>; - pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; + pinctrl-0 = <&bridge_irq_pin &bridge_rst_pin>; pinctrl-names = "default"; ports { @@ -163,7 +166,7 @@ port@0 { reg = <0>; - lt9611_a: endpoint { + hdmi_bridge_in: endpoint { remote-endpoint = <&mdss_dsi0_out>; }; }; @@ -171,8 +174,8 @@ port@2 { reg = <2>; - lt9611_out: endpoint { - remote-endpoint = <&hdmi_con>; + hdmi_bridge_out: endpoint { + remote-endpoint = <&hdmi_connector_out>; }; }; }; @@ -246,15 +249,19 @@ }; &mdss_dsi0 { + vdda-supply = <&vreg_l5a>; + status = "okay"; }; &mdss_dsi0_out { - remote-endpoint = <<9611_a>; + remote-endpoint = <&hdmi_bridge_in>; data-lanes = <0 1 2 3>; }; &mdss_dsi0_phy { + vdds-supply = <&vreg_l11a>; + status = "okay"; }; @@ -484,27 +491,6 @@ function = "gpio"; }; - lt9611_irq_pin: lt9611-irq-state { - pins = "gpio60"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - lt9611_rst_pin: lt9611-rst-state { - pins = "gpio61"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - - lt9611_vcc_pin: lt9611-vcc-state { - pins = "gpio3"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - pcie_default_state: pcie-default-state { clkreq-pins { pins = "gpio90"; @@ -543,6 +529,29 @@ }; }; +&tlmm { + lcd_bias_en: lcd-bias-en-state { + pins = "gpio3"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + + bridge_irq_pin: bridge-irq-state { + pins = "gpio60"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + bridge_rst_pin: bridge-rst-state { + pins = "gpio61"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; +}; + &uart7 { status = "okay"; diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index be9b674d778b6..32db0ee75e1fc 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1648,6 +1648,7 @@ CONFIG_PWM=y CONFIG_PWM_ADP5585=m CONFIG_PWM_BCM2835=m CONFIG_PWM_BRCMSTB=m +CONFIG_PWM_CLK=m CONFIG_PWM_CROS_EC=m CONFIG_PWM_IMX27=m CONFIG_PWM_MESON=m