diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts b/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts index 4ff61593c605..8d1b6c48da82 100644 --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-htc-m8.dts @@ -4,6 +4,9 @@ #include "pm8941.dtsi" #include #include +#include +#include +#include / { model = "HTC One (M8)"; @@ -65,6 +68,50 @@ }; }; +&gpu { + status = "okay"; +}; + +&mdss { + status = "okay"; +}; + +&mdss_dsi0 { + status = "okay"; + + vdd-supply = <&pm8941_l22>; + vddio-supply = <&pm8941_l12>; + vdda-supply = <&pm8941_l2>; + panel@0 { + compatible = "mdss,m8-sharp-novatek-35595"; + reg = <0>; + power-supply = <&pm8941_l12>; + + pinctrl-names = "default"; + pinctrl-0 = <&panel_te_pin>, <&panel_rst_pin>; + backlight-gpios = <&pm8941_gpios 4 GPIO_ACTIVE_HIGH>; + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + data-lanes = <0 1 2 3>; + remote-endpoint = <&panel_in>; +}; + +&mdss_dsi0_phy { + status = "okay"; + + vdd-supply = <&pm8941_l22>; + vddio-supply = <&pm8941_l12>; + vdda-supply = <&pm8941_l2>; +}; + &blsp1_i2c2 { clock-frequency = <384000>; @@ -398,6 +445,21 @@ bias-pull-down; }; }; + + panel_te_pin: panel-te-state { + pins = "gpio12"; + function = "mdp_vsync"; + drive-strength = <2>; + bias-disable; + }; + + panel_rst_pin: panel-rst-state { + pins = "gpio13"; + function = "gpio"; + bias-disable; + power-source = ; + qcom,drive-strength = ; + }; }; &usb { diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 4f280c890fe7..fcac3e04ddc7 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -395,6 +395,16 @@ config DRM_PANEL_LG_SW43408 pixel. It provides a MIPI DSI interface to the host and has a built-in LED backlight. +config DRM_PANEL_M8_SHARP_NOVATEK_35595 + tristate "M8 HTC Sharp Novatek 35595 DSI panel" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select VIDEOMODE_HELPERS + help + DRM panel driver for the HTC M8 Sharp Novatek 35595 command mode panel. This panel receives + video data via DSI. + config DRM_PANEL_MAGNACHIP_D53E6EA8966 tristate "Magnachip D53E6EA8966 DSI panel" depends on OF && SPI diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 9d0c9f111df1..fb5494308681 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -40,6 +40,7 @@ obj-$(CONFIG_DRM_PANEL_LINCOLNTECH_LCD197) += panel-lincolntech-lcd197.o obj-$(CONFIG_DRM_PANEL_LG_LB035Q02) += panel-lg-lb035q02.o obj-$(CONFIG_DRM_PANEL_LG_LG4573) += panel-lg-lg4573.o obj-$(CONFIG_DRM_PANEL_LG_SW43408) += panel-lg-sw43408.o +obj-$(CONFIG_DRM_PANEL_M8_SHARP_NOVATEK_35595) += panel-m8-sharp-novatek-35595.o obj-$(CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966) += panel-magnachip-d53e6ea8966.o obj-$(CONFIG_DRM_PANEL_NEC_NL8048HL11) += panel-nec-nl8048hl11.o obj-$(CONFIG_DRM_PANEL_NEWVISION_NV3051D) += panel-newvision-nv3051d.o diff --git a/drivers/gpu/drm/panel/panel-m8-sharp-novatek-35595.c b/drivers/gpu/drm/panel/panel-m8-sharp-novatek-35595.c new file mode 100644 index 000000000000..40c256465eca --- /dev/null +++ b/drivers/gpu/drm/panel/panel-m8-sharp-novatek-35595.c @@ -0,0 +1,359 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Copyright (c) 2026 FIXME +// Generated with linux-mdss-dsi-panel-driver-generator from vendor device tree: +// Copyright (c) 2013, The Linux Foundation. All rights reserved. (FIXME) + +#include +#include +#include +#include +#include +#include + +#include