* [PATCH 0/2] drm/panel: Add driver for DLC DLC0697 DSI panel
@ 2026-05-18 11:04 Arpit Saini
2026-05-18 11:04 ` [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller Arpit Saini
2026-05-18 11:04 ` [PATCH 2/2] drm/panel: add Ilitek ILI7807S panel driver Arpit Saini
0 siblings, 2 replies; 13+ messages in thread
From: Arpit Saini @ 2026-05-18 11:04 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm,
Ayushi Makhija, quic_rajeevny, quic_vproddut, Arpit Saini
This series adds support for the DLC DLC0697 1080x1920@60Hz MIPI DSI
panel which uses the Ilitek ILI7807S display controller.
The panel operates in video burst mode with four data lanes using
RGB888 pixel format. Backlight brightness is controlled by sending
DCS commands directly over DSI.
A panel_desc descriptor struct is used to describe the panel-specific
init sequence and display mode, allowing additional ILI7807S-based
panels to be added in the future.
Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com>
---
Arpit Saini (2):
dt-bindings: display: panel: add Ilitek ILI7807S panel controller
drm/panel: add Ilitek ILI7807S panel driver
.../bindings/display/panel/ilitek,ili7807s.yaml | 80 +++++
MAINTAINERS | 7 +
drivers/gpu/drm/panel/Kconfig | 12 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-ilitek-ili7807s.c | 328 +++++++++++++++++++++
5 files changed, 428 insertions(+)
---
base-commit: 61680cdf162e59a3c7cde3a2b026a448e1b65a53
change-id: 20260518-ili7807s-panel-8592da51b1eb
Best regards,
--
Arpit Saini <arpit.saini@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-18 11:04 [PATCH 0/2] drm/panel: Add driver for DLC DLC0697 DSI panel Arpit Saini @ 2026-05-18 11:04 ` Arpit Saini 2026-05-18 16:23 ` Dmitry Baryshkov 2026-05-19 10:32 ` Krzysztof Kozlowski 2026-05-18 11:04 ` [PATCH 2/2] drm/panel: add Ilitek ILI7807S panel driver Arpit Saini 1 sibling, 2 replies; 13+ messages in thread From: Arpit Saini @ 2026-05-18 11:04 UTC (permalink / raw) To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut, Arpit Saini ILI7807S is a DSI display controller used to drive MIPI-DSI panels. The DLC DLC0697 1080x1920 LCD panel is based on this controller. The panel requires a reset GPIO, backlight enable GPIO, I/O voltage supply (vddi), positive LCD bias supply (avdd) and negative LCD bias supply (avee). The panel operates in video burst mode with four data lanes using RGB888 pixel format. Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com> --- .../bindings/display/panel/ilitek,ili7807s.yaml | 80 ++++++++++++++++++++++ MAINTAINERS | 7 ++ 2 files changed, 87 insertions(+) diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml new file mode 100644 index 000000000000..93c511d03c00 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/ilitek,ili7807s.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Ilitek ILI7807S-based DSI panels + +maintainers: + - Arpit Saini <arpit.saini@oss.qualcomm.com> + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + items: + - enum: + - dlc,dlc0697 + - const: ilitek,ili7807s + + reg: + maxItems: 1 + description: DSI virtual channel + + reset-gpios: true + + backlight-en-gpios: + description: Backlight enable GPIO (active high) + + vddi-supply: + description: I/O voltage supply (1.8V) + + avdd-supply: + description: Positive LCD bias supply (AVDD), typically +5.5V + (range 4.5V to 6.3V) + + avee-supply: + description: Negative LCD bias supply (AVEE), typically -5.5V + (range -6.3V to -4.5V) + + port: true + +required: + - compatible + - reg + - reset-gpios + - vddi-supply + - avdd-supply + - avee-supply + - port + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + dsi { + #address-cells = <1>; + #size-cells = <0>; + + panel@0 { + compatible = "dlc,dlc0697", "ilitek,ili7807s"; + reg = <0>; + + reset-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; + backlight-en-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; + + vddi-supply = <&pm4125_l15>; + avdd-supply = <&avdd>; + avee-supply = <&avee>; + + port { + panel_in: endpoint { + remote-endpoint = <&dsi0_out>; + }; + }; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 26060e51c067..529aed669401 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7941,6 +7941,13 @@ S: Maintained F: Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml F: drivers/gpu/drm/bridge/chipone-icn6211.c +DRM DRIVER FOR ILITEK ILI7807S DSI PANEL +M: Arpit Saini <arpit.saini@oss.qualcomm.com> +S: Maintained +T: git https://gitlab.freedesktop.org/drm/misc/kernel.git +F: Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml +F: drivers/gpu/drm/panel/panel-ilitek-ili7807s.c + DRM DRIVER FOR EBBG FT8719 PANEL M: Joel Selvaraj <jo@jsfamily.in> S: Maintained -- 2.34.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-18 11:04 ` [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller Arpit Saini @ 2026-05-18 16:23 ` Dmitry Baryshkov 2026-05-20 12:54 ` Arpit Saini 2026-05-19 10:32 ` Krzysztof Kozlowski 1 sibling, 1 reply; 13+ messages in thread From: Dmitry Baryshkov @ 2026-05-18 16:23 UTC (permalink / raw) To: Arpit Saini Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: > ILI7807S is a DSI display controller used to drive MIPI-DSI panels. > The DLC DLC0697 1080x1920 LCD panel is based on this controller. > > The panel requires a reset GPIO, backlight enable GPIO, I/O voltage > supply (vddi), positive LCD bias supply (avdd) and negative LCD bias > supply (avee). The panel operates in video burst mode with four data > lanes using RGB888 pixel format. > > Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com> > --- > .../bindings/display/panel/ilitek,ili7807s.yaml | 80 ++++++++++++++++++++++ > MAINTAINERS | 7 ++ > 2 files changed, 87 insertions(+) > > diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml > new file mode 100644 > index 000000000000..93c511d03c00 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/panel/ilitek,ili7807s.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Ilitek ILI7807S-based DSI panels > + > +maintainers: > + - Arpit Saini <arpit.saini@oss.qualcomm.com> > + > +allOf: > + - $ref: panel-common.yaml# > + > +properties: > + compatible: > + items: > + - enum: > + - dlc,dlc0697 > + - const: ilitek,ili7807s > + > + reg: > + maxItems: 1 > + description: DSI virtual channel > + > + reset-gpios: true > + > + backlight-en-gpios: > + description: Backlight enable GPIO (active high) Is this actual GPIO or the GPIO-controlled supply? > + > + vddi-supply: > + description: I/O voltage supply (1.8V) > + > + avdd-supply: > + description: Positive LCD bias supply (AVDD), typically +5.5V > + (range 4.5V to 6.3V) > + > + avee-supply: > + description: Negative LCD bias supply (AVEE), typically -5.5V > + (range -6.3V to -4.5V) > + -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-18 16:23 ` Dmitry Baryshkov @ 2026-05-20 12:54 ` Arpit Saini 2026-06-06 12:16 ` Dmitry Baryshkov 0 siblings, 1 reply; 13+ messages in thread From: Arpit Saini @ 2026-05-20 12:54 UTC (permalink / raw) To: Dmitry Baryshkov Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut Hi Dmitry, On 5/18/2026 9:53 PM, Dmitry Baryshkov wrote: > On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: >> ILI7807S is a DSI display controller used to drive MIPI-DSI panels. >> The DLC DLC0697 1080x1920 LCD panel is based on this controller. >> >> The panel requires a reset GPIO, backlight enable GPIO, I/O voltage >> supply (vddi), positive LCD bias supply (avdd) and negative LCD bias >> supply (avee). The panel operates in video burst mode with four data >> lanes using RGB888 pixel format. >> >> Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com> >> --- >> .../bindings/display/panel/ilitek,ili7807s.yaml | 80 ++++++++++++++++++++++ >> MAINTAINERS | 7 ++ >> 2 files changed, 87 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml >> new file mode 100644 >> index 000000000000..93c511d03c00 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml >> @@ -0,0 +1,80 @@ >> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/display/panel/ilitek,ili7807s.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Ilitek ILI7807S-based DSI panels >> + >> +maintainers: >> + - Arpit Saini <arpit.saini@oss.qualcomm.com> >> + >> +allOf: >> + - $ref: panel-common.yaml# >> + >> +properties: >> + compatible: >> + items: >> + - enum: >> + - dlc,dlc0697 >> + - const: ilitek,ili7807s >> + >> + reg: >> + maxItems: 1 >> + description: DSI virtual channel >> + >> + reset-gpios: true >> + >> + backlight-en-gpios: >> + description: Backlight enable GPIO (active high) > > Is this actual GPIO or the GPIO-controlled supply? > Addressed here https://lore.kernel.org/all/dd065ccd-d7cb-45b5-8733-64b4f6571b3d@oss.qualcomm.com/ Thanks Arpit ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-20 12:54 ` Arpit Saini @ 2026-06-06 12:16 ` Dmitry Baryshkov 0 siblings, 0 replies; 13+ messages in thread From: Dmitry Baryshkov @ 2026-06-06 12:16 UTC (permalink / raw) To: Arpit Saini Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut On Wed, May 20, 2026 at 06:24:20PM +0530, Arpit Saini wrote: > Hi Dmitry, > > On 5/18/2026 9:53 PM, Dmitry Baryshkov wrote: > > On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: > > > ILI7807S is a DSI display controller used to drive MIPI-DSI panels. > > > The DLC DLC0697 1080x1920 LCD panel is based on this controller. > > > > > > The panel requires a reset GPIO, backlight enable GPIO, I/O voltage > > > supply (vddi), positive LCD bias supply (avdd) and negative LCD bias > > > supply (avee). The panel operates in video burst mode with four data > > > lanes using RGB888 pixel format. > > > > > > Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com> > > > --- > > > .../bindings/display/panel/ilitek,ili7807s.yaml | 80 ++++++++++++++++++++++ > > > MAINTAINERS | 7 ++ > > > 2 files changed, 87 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml > > > new file mode 100644 > > > index 000000000000..93c511d03c00 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml > > > @@ -0,0 +1,80 @@ > > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/display/panel/ilitek,ili7807s.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: Ilitek ILI7807S-based DSI panels > > > + > > > +maintainers: > > > + - Arpit Saini <arpit.saini@oss.qualcomm.com> > > > + > > > +allOf: > > > + - $ref: panel-common.yaml# > > > + > > > +properties: > > > + compatible: > > > + items: > > > + - enum: > > > + - dlc,dlc0697 > > > + - const: ilitek,ili7807s > > > + > > > + reg: > > > + maxItems: 1 > > > + description: DSI virtual channel > > > + > > > + reset-gpios: true > > > + > > > + backlight-en-gpios: > > > + description: Backlight enable GPIO (active high) > > > > Is this actual GPIO or the GPIO-controlled supply? > > > Addressed here https://lore.kernel.org/all/dd065ccd-d7cb-45b5-8733-64b4f6571b3d@oss.qualcomm.com/ It's not. Or, from your description, I can assume that it is a PWM controller external to the panel. Please model it accordingly. I assume there is no 'backlight-en' pin on the panel connector. -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-18 11:04 ` [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller Arpit Saini 2026-05-18 16:23 ` Dmitry Baryshkov @ 2026-05-19 10:32 ` Krzysztof Kozlowski 2026-05-20 12:40 ` Arpit Saini 1 sibling, 1 reply; 13+ messages in thread From: Krzysztof Kozlowski @ 2026-05-19 10:32 UTC (permalink / raw) To: Arpit Saini Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: > ILI7807S is a DSI display controller used to drive MIPI-DSI panels. > The DLC DLC0697 1080x1920 LCD panel is based on this controller. > > The panel requires a reset GPIO, backlight enable GPIO, I/O voltage If panel requires it, so should the binding. ... > + reg: > + maxItems: 1 > + description: DSI virtual channel > + > + reset-gpios: true > + > + backlight-en-gpios: > + description: Backlight enable GPIO (active high) What is the name of the pin in ili7807s device? > + > + vddi-supply: > + description: I/O voltage supply (1.8V) > + > + avdd-supply: > + description: Positive LCD bias supply (AVDD), typically +5.5V > + (range 4.5V to 6.3V) > + > + avee-supply: > + description: Negative LCD bias supply (AVEE), typically -5.5V > + (range -6.3V to -4.5V) > + > + port: true > + > +required: > + - compatible > + - reg > + - reset-gpios > + - vddi-supply > + - avdd-supply > + - avee-supply > + - port > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + dsi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + panel@0 { > + compatible = "dlc,dlc0697", "ilitek,ili7807s"; > + reg = <0>; > + > + reset-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; > + backlight-en-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; > + > + vddi-supply = <&pm4125_l15>; > + avdd-supply = <&avdd>; > + avee-supply = <&avee>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <&dsi0_out>; > + }; > + }; > + }; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 26060e51c067..529aed669401 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -7941,6 +7941,13 @@ S: Maintained > F: Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml > F: drivers/gpu/drm/bridge/chipone-icn6211.c > > +DRM DRIVER FOR ILITEK ILI7807S DSI PANEL > +M: Arpit Saini <arpit.saini@oss.qualcomm.com> > +S: Maintained > +T: git https://gitlab.freedesktop.org/drm/misc/kernel.git Drop, unless you handle patches for this driver. > +F: Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml > +F: drivers/gpu/drm/panel/panel-ilitek-ili7807s.c Drop, no such file at this point. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-19 10:32 ` Krzysztof Kozlowski @ 2026-05-20 12:40 ` Arpit Saini 2026-05-20 13:19 ` Krzysztof Kozlowski 2026-05-20 13:26 ` Dmitry Baryshkov 0 siblings, 2 replies; 13+ messages in thread From: Arpit Saini @ 2026-05-20 12:40 UTC (permalink / raw) To: Krzysztof Kozlowski, dmitry.baryshkov Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, rajeevny Hi Krzysztof , Dmitry On 5/19/2026 4:02 PM, Krzysztof Kozlowski wrote: > On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: >> ILI7807S is a DSI display controller used to drive MIPI-DSI panels. >> The DLC DLC0697 1080x1920 LCD panel is based on this controller. >> >> The panel requires a reset GPIO, backlight enable GPIO, I/O voltage > > If panel requires it, so should the binding. > Ack, I will update. > ... > >> + reg: >> + maxItems: 1 >> + description: DSI virtual channel >> + >> + reset-gpios: true >> + >> + backlight-en-gpios: >> + description: Backlight enable GPIO (active high) > > What is the name of the pin in ili7807s device? > Display daughter card has WLED driver as well as LCD bias driver. The WLED driver's Enable is coming from WLED_P1_EN and PWM is coming from LCD_CABC output of the panel. DISPLAY0_BACKLIGHT_ENABLE (GPIO 91) of ITP baseband card ==> WLED_P1_EN of Display Daughter Card (DC) In the display daughter card of Shikra ITP platform, we are not using the external PWM for WLED driver. But connected the CABC output of the panel to the WLED driver. Backlight update is happening using MIPI DCS command which is driving the CABC output (i.e., PWM for WLED). Because of above HW configuration, we need to enable the MIPI DCS brightness update on this panel. The below command of dlc0697_init_sequence() is enabling this. mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x53, 0x24); After checking this, I realized that this panel can be used without the DCS backlight as well when it's using PWM based backlight control. I can add `has_dcs_backlight` in panel_desc and set it true for dlc0697. I will update bindings and add backlight as optional property. Currently "backlight-en" as optional. I will fix the commit text as Krzysztof pointed out and update the commit text to get add more clarity. please let me know if you have any comments. >> + >> + vddi-supply: >> + description: I/O voltage supply (1.8V) >> + >> + avdd-supply: >> + description: Positive LCD bias supply (AVDD), typically +5.5V >> + (range 4.5V to 6.3V) >> + >> + avee-supply: >> + description: Negative LCD bias supply (AVEE), typically -5.5V >> + (range -6.3V to -4.5V) >> + >> + port: true >> + >> +required: >> + - compatible >> + - reg >> + - reset-gpios >> + - vddi-supply >> + - avdd-supply >> + - avee-supply >> + - port >> + >> +additionalProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/gpio/gpio.h> >> + >> + dsi { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + panel@0 { >> + compatible = "dlc,dlc0697", "ilitek,ili7807s"; >> + reg = <0>; >> + >> + reset-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; >> + backlight-en-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; >> + >> + vddi-supply = <&pm4125_l15>; >> + avdd-supply = <&avdd>; >> + avee-supply = <&avee>; >> + >> + port { >> + panel_in: endpoint { >> + remote-endpoint = <&dsi0_out>; >> + }; >> + }; >> + }; >> + }; >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 26060e51c067..529aed669401 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -7941,6 +7941,13 @@ S: Maintained >> F: Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml >> F: drivers/gpu/drm/bridge/chipone-icn6211.c >> >> +DRM DRIVER FOR ILITEK ILI7807S DSI PANEL >> +M: Arpit Saini <arpit.saini@oss.qualcomm.com> >> +S: Maintained >> +T: git https://gitlab.freedesktop.org/drm/misc/kernel.git > > Drop, unless you handle patches for this driver. Ack, I will update. > >> +F: Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml >> +F: drivers/gpu/drm/panel/panel-ilitek-ili7807s.c > > Drop, no such file at this point. Ack, I will update. > > Best regards, > Krzysztof > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-20 12:40 ` Arpit Saini @ 2026-05-20 13:19 ` Krzysztof Kozlowski 2026-05-20 13:26 ` Dmitry Baryshkov 1 sibling, 0 replies; 13+ messages in thread From: Krzysztof Kozlowski @ 2026-05-20 13:19 UTC (permalink / raw) To: Arpit Saini, dmitry.baryshkov Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, rajeevny On 20/05/2026 14:40, Arpit Saini wrote: > Hi Krzysztof , Dmitry > > On 5/19/2026 4:02 PM, Krzysztof Kozlowski wrote: >> On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: >>> ILI7807S is a DSI display controller used to drive MIPI-DSI panels. >>> The DLC DLC0697 1080x1920 LCD panel is based on this controller. >>> >>> The panel requires a reset GPIO, backlight enable GPIO, I/O voltage >> >> If panel requires it, so should the binding. >> > Ack, I will update. >> ... >> >>> + reg: >>> + maxItems: 1 >>> + description: DSI virtual channel >>> + >>> + reset-gpios: true >>> + >>> + backlight-en-gpios: >>> + description: Backlight enable GPIO (active high) >> >> What is the name of the pin in ili7807s device? >> > Display daughter card has WLED driver as well as LCD bias driver. > > The WLED driver's Enable is coming from WLED_P1_EN and PWM is coming > from LCD_CABC output of the panel. WLED driver is not ili7807s. LCD bias driver also sounds like something else than ili7807s. So my question stays. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-20 12:40 ` Arpit Saini 2026-05-20 13:19 ` Krzysztof Kozlowski @ 2026-05-20 13:26 ` Dmitry Baryshkov 2026-05-26 10:32 ` Arpit Saini 1 sibling, 1 reply; 13+ messages in thread From: Dmitry Baryshkov @ 2026-05-20 13:26 UTC (permalink / raw) To: Arpit Saini Cc: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, rajeevny On Wed, May 20, 2026 at 06:10:57PM +0530, Arpit Saini wrote: > Hi Krzysztof , Dmitry > > On 5/19/2026 4:02 PM, Krzysztof Kozlowski wrote: > > On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: > > > ILI7807S is a DSI display controller used to drive MIPI-DSI panels. > > > The DLC DLC0697 1080x1920 LCD panel is based on this controller. I can't find this panel on the DLC website. Do you have a pointer to the product page? > > > > > > The panel requires a reset GPIO, backlight enable GPIO, I/O voltage > > > > If panel requires it, so should the binding. > > > Ack, I will update. > > ... > > > > > + reg: > > > + maxItems: 1 > > > + description: DSI virtual channel > > > + > > > + reset-gpios: true > > > + > > > + backlight-en-gpios: > > > + description: Backlight enable GPIO (active high) > > > > What is the name of the pin in ili7807s device? > > > Display daughter card has WLED driver as well as LCD bias driver. What is the display daughter card here? Is it a Qualcomm board or is it a part of the panel? Also you wrote a lot of text, but you didn't really answer either of the quesitons. Is there a GPIO on the panel connector that enables the backlight? If not, this is some external supply on your (assumingly) daughter card. And it should be modelled accordingly. > > The WLED driver's Enable is coming from WLED_P1_EN and PWM is coming from > LCD_CABC output of the panel. > > DISPLAY0_BACKLIGHT_ENABLE (GPIO 91) of ITP baseband card ==> WLED_P1_EN of > Display Daughter Card (DC) > > In the display daughter card of Shikra ITP platform, we are not using the > external PWM for WLED driver. But connected the CABC output of the panel to > the WLED driver. Backlight update is happening using MIPI DCS command which > is driving the CABC output (i.e., PWM for WLED). > > Because of above HW configuration, we need to enable the MIPI DCS brightness > update on this panel. The below command of dlc0697_init_sequence() is > enabling this. > mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x53, 0x24); So, this should be then dependent on the presence of the backlight in the DT. Either it is a panel-internal one, or an external one. > > > After checking this, I realized that this panel can be used without the DCS > backlight as well when it's using PWM based backlight control. > > I can add `has_dcs_backlight` in panel_desc and set it true for dlc0697. I > will update bindings and add backlight as optional property. Why? Use backlight property instead. It's already there. Anyway, you really, really need to describe the panel in the bidings. Not your daughter card. > > Currently "backlight-en" as optional. I will fix the commit text as > Krzysztof pointed out and update the commit text to get add more clarity. > > please let me know if you have any comments. > > > + > > > + vddi-supply: > > > + description: I/O voltage supply (1.8V) > > > + > > > + avdd-supply: > > > + description: Positive LCD bias supply (AVDD), typically +5.5V > > > + (range 4.5V to 6.3V) > > > + > > > + avee-supply: > > > + description: Negative LCD bias supply (AVEE), typically -5.5V > > > + (range -6.3V to -4.5V) > > > + > > > + port: true > > > + > > > +required: > > > + - compatible > > > + - reg > > > + - reset-gpios > > > + - vddi-supply > > > + - avdd-supply > > > + - avee-supply > > > + - port > > > + > > > +additionalProperties: false > > > + > > > +examples: > > > + - | > > > + #include <dt-bindings/gpio/gpio.h> > > > + > > > + dsi { > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + > > > + panel@0 { > > > + compatible = "dlc,dlc0697", "ilitek,ili7807s"; > > > + reg = <0>; > > > + > > > + reset-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; > > > + backlight-en-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; > > > + > > > + vddi-supply = <&pm4125_l15>; > > > + avdd-supply = <&avdd>; > > > + avee-supply = <&avee>; > > > + > > > + port { > > > + panel_in: endpoint { > > > + remote-endpoint = <&dsi0_out>; > > > + }; > > > + }; > > > + }; > > > + }; > > > diff --git a/MAINTAINERS b/MAINTAINERS > > > index 26060e51c067..529aed669401 100644 > > > --- a/MAINTAINERS > > > +++ b/MAINTAINERS > > > @@ -7941,6 +7941,13 @@ S: Maintained > > > F: Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml > > > F: drivers/gpu/drm/bridge/chipone-icn6211.c > > > +DRM DRIVER FOR ILITEK ILI7807S DSI PANEL > > > +M: Arpit Saini <arpit.saini@oss.qualcomm.com> > > > +S: Maintained > > > +T: git https://gitlab.freedesktop.org/drm/misc/kernel.git > > > > Drop, unless you handle patches for this driver. > Ack, I will update. > > > > > +F: Documentation/devicetree/bindings/display/panel/ilitek,ili7807s.yaml > > > +F: drivers/gpu/drm/panel/panel-ilitek-ili7807s.c > > > > Drop, no such file at this point. > Ack, I will update. > > > > Best regards, > > Krzysztof > > > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-20 13:26 ` Dmitry Baryshkov @ 2026-05-26 10:32 ` Arpit Saini 2026-06-06 12:13 ` Dmitry Baryshkov 0 siblings, 1 reply; 13+ messages in thread From: Arpit Saini @ 2026-05-26 10:32 UTC (permalink / raw) To: Dmitry Baryshkov Cc: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, rajeevny Hi Krzysztof , Dmitry On 5/20/2026 6:56 PM, Dmitry Baryshkov wrote: > On Wed, May 20, 2026 at 06:10:57PM +0530, Arpit Saini wrote: >> Hi Krzysztof , Dmitry >> >> On 5/19/2026 4:02 PM, Krzysztof Kozlowski wrote: >>> On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: >>>> ILI7807S is a DSI display controller used to drive MIPI-DSI panels. >>>> The DLC DLC0697 1080x1920 LCD panel is based on this controller. > > I can't find this panel on the DLC website. Do you have a pointer to the > product page? > https://v4.cecdn.yun300.cn/100001_2012175013/DLC0697AAL21MF-1.pdf >>>> >>>> The panel requires a reset GPIO, backlight enable GPIO, I/O voltage >>> >>> If panel requires it, so should the binding. >>> >> Ack, I will update. >>> ... >>> >>>> + reg: >>>> + maxItems: 1 >>>> + description: DSI virtual channel >>>> + >>>> + reset-gpios: true >>>> + >>>> + backlight-en-gpios: >>>> + description: Backlight enable GPIO (active high) >>> >>> What is the name of the pin in ili7807s device? >>> >> Display daughter card has WLED driver as well as LCD bias driver. > > What is the display daughter card here? Is it a Qualcomm board or is it > a part of the panel? > > Also you wrote a lot of text, but you didn't really answer either of the > quesitons. Is there a GPIO on the panel connector that enables the > backlight? If not, this is some external supply on your (assumingly) > daughter card. And it should be modelled accordingly. > >> >> The WLED driver's Enable is coming from WLED_P1_EN and PWM is coming from >> LCD_CABC output of the panel. >> >> DISPLAY0_BACKLIGHT_ENABLE (GPIO 91) of ITP baseband card ==> WLED_P1_EN of >> Display Daughter Card (DC) >> >> In the display daughter card of Shikra ITP platform, we are not using the >> external PWM for WLED driver. But connected the CABC output of the panel to >> the WLED driver. Backlight update is happening using MIPI DCS command which >> is driving the CABC output (i.e., PWM for WLED). >> >> Because of above HW configuration, we need to enable the MIPI DCS brightness >> update on this panel. The below command of dlc0697_init_sequence() is >> enabling this. >> mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x53, 0x24); > > So, this should be then dependent on the presence of the backlight in > the DT. Either it is a panel-internal one, or an external one. > >> >> >> After checking this, I realized that this panel can be used without the DCS >> backlight as well when it's using PWM based backlight control. >> >> I can add `has_dcs_backlight` in panel_desc and set it true for dlc0697. I >> will update bindings and add backlight as optional property. > > Why? Use backlight property instead. It's already there. Anyway, you > really, really need to describe the panel in the bidings. Not your > daughter card. > This `has_dcs_backlight` in panel_desc will serves both the purpose, as for our current platform constraint , we need to create our own backlight. But this panel can be used without the DCS backlight as well when it's using PWM based backlight control. So in this case I need to implement the backlight as implemented in panel-novatek-nt36523.c, panel-himax-hx83121a.c. with this implementation ,I will remove the backlight from the dt-bindings. Please let me know,if I am missing something. Thanks, Arpit ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller 2026-05-26 10:32 ` Arpit Saini @ 2026-06-06 12:13 ` Dmitry Baryshkov 0 siblings, 0 replies; 13+ messages in thread From: Dmitry Baryshkov @ 2026-06-06 12:13 UTC (permalink / raw) To: Arpit Saini Cc: Krzysztof Kozlowski, Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, rajeevny On Tue, May 26, 2026 at 04:02:45PM +0530, Arpit Saini wrote: > Hi Krzysztof , Dmitry > > On 5/20/2026 6:56 PM, Dmitry Baryshkov wrote: > > On Wed, May 20, 2026 at 06:10:57PM +0530, Arpit Saini wrote: > > > Hi Krzysztof , Dmitry > > > > > > On 5/19/2026 4:02 PM, Krzysztof Kozlowski wrote: > > > > On Mon, May 18, 2026 at 04:34:12PM +0530, Arpit Saini wrote: > > > > > ILI7807S is a DSI display controller used to drive MIPI-DSI panels. > > > > > The DLC DLC0697 1080x1920 LCD panel is based on this controller. > > > > I can't find this panel on the DLC website. Do you have a pointer to the > > product page? > > > https://v4.cecdn.yun300.cn/100001_2012175013/DLC0697AAL21MF-1.pdf "Invalid referrer" > > > > > > > > > > The panel requires a reset GPIO, backlight enable GPIO, I/O voltage > > > > > > > > If panel requires it, so should the binding. > > > > > > > Ack, I will update. > > > > ... > > > > > > > > > + reg: > > > > > + maxItems: 1 > > > > > + description: DSI virtual channel > > > > > + > > > > > + reset-gpios: true > > > > > + > > > > > + backlight-en-gpios: > > > > > + description: Backlight enable GPIO (active high) > > > > > > > > What is the name of the pin in ili7807s device? > > > > > > > Display daughter card has WLED driver as well as LCD bias driver. > > > > What is the display daughter card here? Is it a Qualcomm board or is it > > a part of the panel? > > > > Also you wrote a lot of text, but you didn't really answer either of the > > quesitons. Is there a GPIO on the panel connector that enables the > > backlight? If not, this is some external supply on your (assumingly) > > daughter card. And it should be modelled accordingly. Still unanswered. > > > > > > > > The WLED driver's Enable is coming from WLED_P1_EN and PWM is coming from > > > LCD_CABC output of the panel. > > > > > > DISPLAY0_BACKLIGHT_ENABLE (GPIO 91) of ITP baseband card ==> WLED_P1_EN of > > > Display Daughter Card (DC) > > > > > > In the display daughter card of Shikra ITP platform, we are not using the > > > external PWM for WLED driver. But connected the CABC output of the panel to > > > the WLED driver. Backlight update is happening using MIPI DCS command which > > > is driving the CABC output (i.e., PWM for WLED). > > > > > > Because of above HW configuration, we need to enable the MIPI DCS brightness > > > update on this panel. The below command of dlc0697_init_sequence() is > > > enabling this. > > > mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x53, 0x24); > > > > So, this should be then dependent on the presence of the backlight in > > the DT. Either it is a panel-internal one, or an external one. > > > > > > > > > > > After checking this, I realized that this panel can be used without the DCS > > > backlight as well when it's using PWM based backlight control. > > > > > > I can add `has_dcs_backlight` in panel_desc and set it true for dlc0697. I > > > will update bindings and add backlight as optional property. > > > > Why? Use backlight property instead. It's already there. Anyway, you > > really, really need to describe the panel in the bidings. Not your > > daughter card. > > > This `has_dcs_backlight` in panel_desc will serves both the purpose, as for > our current platform constraint , we need to create our own backlight. > But this panel can be used without the DCS > backlight as well when it's using PWM based backlight control. > > So in this case I need to implement the backlight as implemented in > panel-novatek-nt36523.c, panel-himax-hx83121a.c. > > with this implementation ,I will remove the backlight from the dt-bindings. Much easier. Call drm_panel_of_backlight() and if there is no error and panel->backlight is still NULL, then create your own backlight device. > > Please let me know,if I am missing something. > > Thanks, > Arpit > > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/2] drm/panel: add Ilitek ILI7807S panel driver 2026-05-18 11:04 [PATCH 0/2] drm/panel: Add driver for DLC DLC0697 DSI panel Arpit Saini 2026-05-18 11:04 ` [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller Arpit Saini @ 2026-05-18 11:04 ` Arpit Saini 2026-05-18 13:50 ` Neil Armstrong 1 sibling, 1 reply; 13+ messages in thread From: Arpit Saini @ 2026-05-18 11:04 UTC (permalink / raw) To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut, Arpit Saini Add a DRM panel driver for the DLC DLC0697 1080x1920@60Hz MIPI DSI panel based on the Ilitek ILI7807S display controller. Backlight brightness is controlled by sending DCS commands directly over DSI using mipi_dsi_dcs. The panel operates in video burst mode with four data lanes using RGB888 pixel format. Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com> --- drivers/gpu/drm/panel/Kconfig | 12 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-ilitek-ili7807s.c | 328 ++++++++++++++++++++++++++ 3 files changed, 341 insertions(+) diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 307152ad7759..226e4923aa3a 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -228,6 +228,18 @@ config DRM_PANEL_HYDIS_HV101HD1 If M is selected the module will be called panel-hydis-hv101hd1 +config DRM_PANEL_ILITEK_ILI7807S + tristate "Ilitek ILI7807S-based panels" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y if you want to enable support for panels based on the + Ilitek ILI7807S display controller, such as the DLC DLC0697 + 1080x1920 MIPI DSI panel. + + If M is selected the module will be called panel-ilitek-ili7807s. + config DRM_PANEL_ILITEK_IL9322 tristate "Ilitek ILI9322 320x240 QVGA panels" depends on OF && SPI diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index aeffaa95666d..13bd324e17a8 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_DRM_PANEL_HIMAX_HX83112A) += panel-himax-hx83112a.o obj-$(CONFIG_DRM_PANEL_HIMAX_HX83112B) += panel-himax-hx83112b.o obj-$(CONFIG_DRM_PANEL_HIMAX_HX8394) += panel-himax-hx8394.o obj-$(CONFIG_DRM_PANEL_HYDIS_HV101HD1) += panel-hydis-hv101hd1.o +obj-$(CONFIG_DRM_PANEL_ILITEK_ILI7807S) += panel-ilitek-ili7807s.o obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9805) += panel-ilitek-ili9805.o diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili7807s.c b/drivers/gpu/drm/panel/panel-ilitek-ili7807s.c new file mode 100644 index 000000000000..09288b602a94 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-ilitek-ili7807s.c @@ -0,0 +1,328 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include <linux/backlight.h> +#include <linux/delay.h> +#include <linux/gpio/consumer.h> +#include <linux/module.h> +#include <linux/of.h> +#include <linux/regulator/consumer.h> + +#include <drm/drm_mipi_dsi.h> +#include <drm/drm_modes.h> +#include <drm/drm_panel.h> +#include <drm/drm_probe_helper.h> + +struct panel_desc { + const struct drm_display_mode *mode; + unsigned int lanes; + enum mipi_dsi_pixel_format format; + unsigned long mode_flags; + void (*init)(struct mipi_dsi_multi_context *dsi_ctx); +}; + +struct ili7807s { + struct drm_panel panel; + struct mipi_dsi_device *dsi; + const struct panel_desc *desc; + + struct regulator_bulk_data *supplies; + struct gpio_desc *reset_gpio; + struct gpio_desc *backlight_en_gpio; +}; + +static const struct regulator_bulk_data ili7807s_supplies[] = { + { .supply = "vddi" }, + { .supply = "avdd" }, + { .supply = "avee" }, +}; + +static inline struct ili7807s *to_ili7807s(struct drm_panel *panel) +{ + return container_of(panel, struct ili7807s, panel); +} + +static void ili7807s_reset(struct ili7807s *ctx) +{ + gpiod_set_value_cansleep(ctx->reset_gpio, 0); + usleep_range(10000, 11000); + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + usleep_range(10000, 11000); + gpiod_set_value_cansleep(ctx->reset_gpio, 0); + usleep_range(10000, 11000); +} + +static void dlc0697_init_sequence(struct mipi_dsi_multi_context *dsi_ctx) +{ + mipi_dsi_dcs_soft_reset_multi(dsi_ctx); + mipi_dsi_msleep(dsi_ctx, 120); + + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0xff, 0x78, 0x07, 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x35, 0x00); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x5e, 0x09, 0x99); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x53, 0x24); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x55, 0x01); + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x51, 0x3f, 0xff); + + mipi_dsi_dcs_exit_sleep_mode_multi(dsi_ctx); + mipi_dsi_msleep(dsi_ctx, 120); + + mipi_dsi_dcs_set_display_on_multi(dsi_ctx); + mipi_dsi_msleep(dsi_ctx, 20); +} + +static int ili7807s_on(struct ili7807s *ctx) +{ + struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; + + ctx->dsi->mode_flags |= MIPI_DSI_MODE_LPM; + + ctx->desc->init(&dsi_ctx); + + ctx->dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; + + return dsi_ctx.accum_err; +} + +static int ili7807s_off(struct ili7807s *ctx) +{ + struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; + + ctx->dsi->mode_flags |= MIPI_DSI_MODE_LPM; + + mipi_dsi_dcs_set_display_off_multi(&dsi_ctx); + mipi_dsi_msleep(&dsi_ctx, 20); + + mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx); + mipi_dsi_msleep(&dsi_ctx, 120); + + ctx->dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; + + return dsi_ctx.accum_err; +} + +static int ili7807s_enable(struct drm_panel *panel) +{ + struct ili7807s *ctx = to_ili7807s(panel); + + if (ctx->backlight_en_gpio) + gpiod_set_value_cansleep(ctx->backlight_en_gpio, 1); + + return 0; +} + +static int ili7807s_disable(struct drm_panel *panel) +{ + struct ili7807s *ctx = to_ili7807s(panel); + + if (ctx->backlight_en_gpio) + gpiod_set_value_cansleep(ctx->backlight_en_gpio, 0); + + return 0; +} + +static int ili7807s_prepare(struct drm_panel *panel) +{ + struct ili7807s *ctx = to_ili7807s(panel); + int ret; + + ret = regulator_bulk_enable(ARRAY_SIZE(ili7807s_supplies), ctx->supplies); + if (ret < 0) { + dev_err(ctx->panel.dev, "failed to enable regulators: %d\n", ret); + return ret; + } + + msleep(20); + + ili7807s_reset(ctx); + + ret = ili7807s_on(ctx); + if (ret < 0) { + dev_err(ctx->panel.dev, "failed to initialise panel: %d\n", ret); + goto err; + } + + return 0; + +err: + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + + regulator_bulk_disable(ARRAY_SIZE(ili7807s_supplies), ctx->supplies); + return ret; +} + +static int ili7807s_unprepare(struct drm_panel *panel) +{ + struct ili7807s *ctx = to_ili7807s(panel); + int ret; + + ret = ili7807s_off(ctx); + if (ret < 0) + dev_err(ctx->panel.dev, "failed to disable panel: %d\n", ret); + + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + + regulator_bulk_disable(ARRAY_SIZE(ili7807s_supplies), ctx->supplies); + + return 0; +} + +static int ili7807s_get_modes(struct drm_panel *panel, + struct drm_connector *connector) +{ + struct ili7807s *ctx = to_ili7807s(panel); + + return drm_connector_helper_get_modes_fixed(connector, ctx->desc->mode); +} + +static const struct drm_panel_funcs ili7807s_panel_funcs = { + .prepare = ili7807s_prepare, + .unprepare = ili7807s_unprepare, + .enable = ili7807s_enable, + .disable = ili7807s_disable, + .get_modes = ili7807s_get_modes, +}; + +static int ili7807s_bl_update_status(struct backlight_device *bl) +{ + struct mipi_dsi_device *dsi = bl_get_data(bl); + u16 brightness = backlight_get_brightness(bl); + int ret; + + dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; + + ret = mipi_dsi_dcs_set_display_brightness_large(dsi, brightness); + if (ret < 0) + return ret; + + dsi->mode_flags |= MIPI_DSI_MODE_LPM; + + return ret; +} + +static const struct backlight_ops ili7807s_bl_ops = { + .update_status = ili7807s_bl_update_status, +}; + +static struct backlight_device *ili7807s_create_backlight(struct mipi_dsi_device *dsi) +{ + struct device *dev = &dsi->dev; + const struct backlight_properties props = { + .type = BACKLIGHT_RAW, + .brightness = 0x3fff, + .max_brightness = 0x3fff, + }; + + return devm_backlight_device_register(dev, dev_name(dev), dev, dsi, + &ili7807s_bl_ops, &props); +} + +static const struct drm_display_mode dlc0697_mode = { + .clock = 131911, + + .hdisplay = 1080, + .hsync_start = 1080 + 18, + .hsync_end = 1080 + 18 + 2, + .htotal = 1080 + 18 + 2 + 16, + + .vdisplay = 1920, + .vsync_start = 1920 + 26, + .vsync_end = 1920 + 26 + 4, + .vtotal = 1920 + 26 + 4 + 20, + + .width_mm = 0, + .height_mm = 0, + .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, +}; + +static const struct panel_desc dlc0697_desc = { + .mode = &dlc0697_mode, + .lanes = 4, + .format = MIPI_DSI_FMT_RGB888, + .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST, + .init = dlc0697_init_sequence, +}; + +static int ili7807s_probe(struct mipi_dsi_device *dsi) +{ + struct device *dev = &dsi->dev; + const struct panel_desc *desc; + struct ili7807s *ctx; + int ret; + + ctx = devm_drm_panel_alloc(dev, struct ili7807s, panel, + &ili7807s_panel_funcs, + DRM_MODE_CONNECTOR_DSI); + if (IS_ERR(ctx)) + return PTR_ERR(ctx); + + desc = of_device_get_match_data(dev); + ctx->desc = desc; + + ret = devm_regulator_bulk_get_const(dev, ARRAY_SIZE(ili7807s_supplies), + ili7807s_supplies, &ctx->supplies); + if (ret < 0) + return dev_err_probe(dev, ret, "failed to get regulators\n"); + + ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(ctx->reset_gpio)) + return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), + "failed to get reset gpio\n"); + + ctx->backlight_en_gpio = devm_gpiod_get_optional(dev, "backlight-en", + GPIOD_OUT_LOW); + if (IS_ERR(ctx->backlight_en_gpio)) + return dev_err_probe(dev, PTR_ERR(ctx->backlight_en_gpio), + "failed to get backlight-en gpio\n"); + + ctx->dsi = dsi; + mipi_dsi_set_drvdata(dsi, ctx); + + dsi->lanes = desc->lanes; + dsi->format = desc->format; + dsi->mode_flags = desc->mode_flags; + + ctx->panel.prepare_prev_first = true; + + ctx->panel.backlight = ili7807s_create_backlight(dsi); + if (IS_ERR(ctx->panel.backlight)) + return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight), + "failed to create backlight\n"); + + drm_panel_add(&ctx->panel); + + ret = devm_mipi_dsi_attach(dev, dsi); + if (ret < 0) + return dev_err_probe(dev, ret, "failed to attach dsi\n"); + + return 0; +} + +static void ili7807s_remove(struct mipi_dsi_device *dsi) +{ + struct ili7807s *ctx = mipi_dsi_get_drvdata(dsi); + + drm_panel_remove(&ctx->panel); +} + +static const struct of_device_id ili7807s_of_match[] = { + { .compatible = "dlc,dlc0697", .data = &dlc0697_desc }, + { } +}; +MODULE_DEVICE_TABLE(of, ili7807s_of_match); + +static struct mipi_dsi_driver ili7807s_dsi_driver = { + .probe = ili7807s_probe, + .remove = ili7807s_remove, + .driver = { + .name = "panel-ilitek-ili7807s", + .of_match_table = ili7807s_of_match, + }, +}; +module_mipi_dsi_driver(ili7807s_dsi_driver); + +MODULE_AUTHOR("Arpit Saini <arpit.saini@oss.qualcomm.com>"); +MODULE_DESCRIPTION("Panel driver for Ilitek ILI7807S LCD DSI panel"); +MODULE_LICENSE("GPL"); -- 2.34.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] drm/panel: add Ilitek ILI7807S panel driver 2026-05-18 11:04 ` [PATCH 2/2] drm/panel: add Ilitek ILI7807S panel driver Arpit Saini @ 2026-05-18 13:50 ` Neil Armstrong 0 siblings, 0 replies; 13+ messages in thread From: Neil Armstrong @ 2026-05-18 13:50 UTC (permalink / raw) To: Arpit Saini, Jessica Zhang, David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Ayushi Makhija, quic_rajeevny, quic_vproddut Hi, On 5/18/26 13:04, Arpit Saini wrote: > Add a DRM panel driver for the DLC DLC0697 1080x1920@60Hz MIPI DSI > panel based on the Ilitek ILI7807S display controller. > > Backlight brightness is controlled by sending DCS commands > directly over DSI using mipi_dsi_dcs. > > The panel operates in video burst mode with four data lanes using > RGB888 pixel format. > > Signed-off-by: Arpit Saini <arpit.saini@oss.qualcomm.com> > --- > drivers/gpu/drm/panel/Kconfig | 12 + > drivers/gpu/drm/panel/Makefile | 1 + > drivers/gpu/drm/panel/panel-ilitek-ili7807s.c | 328 ++++++++++++++++++++++++++ > 3 files changed, 341 insertions(+) > > diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig > index 307152ad7759..226e4923aa3a 100644 > --- a/drivers/gpu/drm/panel/Kconfig > +++ b/drivers/gpu/drm/panel/Kconfig > @@ -228,6 +228,18 @@ config DRM_PANEL_HYDIS_HV101HD1 > > If M is selected the module will be called panel-hydis-hv101hd1 > > +config DRM_PANEL_ILITEK_ILI7807S > + tristate "Ilitek ILI7807S-based panels" > + depends on OF > + depends on DRM_MIPI_DSI > + depends on BACKLIGHT_CLASS_DEVICE > + help > + Say Y if you want to enable support for panels based on the > + Ilitek ILI7807S display controller, such as the DLC DLC0697 > + 1080x1920 MIPI DSI panel. > + > + If M is selected the module will be called panel-ilitek-ili7807s. > + > config DRM_PANEL_ILITEK_IL9322 > tristate "Ilitek ILI9322 320x240 QVGA panels" > depends on OF && SPI > diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile > index aeffaa95666d..13bd324e17a8 100644 > --- a/drivers/gpu/drm/panel/Makefile > +++ b/drivers/gpu/drm/panel/Makefile > @@ -23,6 +23,7 @@ obj-$(CONFIG_DRM_PANEL_HIMAX_HX83112A) += panel-himax-hx83112a.o > obj-$(CONFIG_DRM_PANEL_HIMAX_HX83112B) += panel-himax-hx83112b.o > obj-$(CONFIG_DRM_PANEL_HIMAX_HX8394) += panel-himax-hx8394.o > obj-$(CONFIG_DRM_PANEL_HYDIS_HV101HD1) += panel-hydis-hv101hd1.o > +obj-$(CONFIG_DRM_PANEL_ILITEK_ILI7807S) += panel-ilitek-ili7807s.o > obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o > obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o > obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9805) += panel-ilitek-ili9805.o > diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili7807s.c b/drivers/gpu/drm/panel/panel-ilitek-ili7807s.c > new file mode 100644 > index 000000000000..09288b602a94 > --- /dev/null > +++ b/drivers/gpu/drm/panel/panel-ilitek-ili7807s.c > @@ -0,0 +1,328 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. > + */ > + > +#include <linux/backlight.h> > +#include <linux/delay.h> > +#include <linux/gpio/consumer.h> > +#include <linux/module.h> > +#include <linux/of.h> > +#include <linux/regulator/consumer.h> > + > +#include <drm/drm_mipi_dsi.h> > +#include <drm/drm_modes.h> > +#include <drm/drm_panel.h> > +#include <drm/drm_probe_helper.h> > + > +struct panel_desc { > + const struct drm_display_mode *mode; > + unsigned int lanes; > + enum mipi_dsi_pixel_format format; > + unsigned long mode_flags; > + void (*init)(struct mipi_dsi_multi_context *dsi_ctx); > +}; > + > +struct ili7807s { > + struct drm_panel panel; > + struct mipi_dsi_device *dsi; > + const struct panel_desc *desc; > + > + struct regulator_bulk_data *supplies; > + struct gpio_desc *reset_gpio; > + struct gpio_desc *backlight_en_gpio; > +}; > + > +static const struct regulator_bulk_data ili7807s_supplies[] = { > + { .supply = "vddi" }, > + { .supply = "avdd" }, > + { .supply = "avee" }, > +}; > + > +static inline struct ili7807s *to_ili7807s(struct drm_panel *panel) > +{ > + return container_of(panel, struct ili7807s, panel); > +} > + > +static void ili7807s_reset(struct ili7807s *ctx) > +{ > + gpiod_set_value_cansleep(ctx->reset_gpio, 0); > + usleep_range(10000, 11000); > + gpiod_set_value_cansleep(ctx->reset_gpio, 1); > + usleep_range(10000, 11000); > + gpiod_set_value_cansleep(ctx->reset_gpio, 0); > + usleep_range(10000, 11000); > +} > + > +static void dlc0697_init_sequence(struct mipi_dsi_multi_context *dsi_ctx) > +{ > + mipi_dsi_dcs_soft_reset_multi(dsi_ctx); > + mipi_dsi_msleep(dsi_ctx, 120); > + > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0xff, 0x78, 0x07, 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x35, 0x00); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x5e, 0x09, 0x99); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x53, 0x24); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x55, 0x01); > + mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0x51, 0x3f, 0xff); > + > + mipi_dsi_dcs_exit_sleep_mode_multi(dsi_ctx); > + mipi_dsi_msleep(dsi_ctx, 120); > + > + mipi_dsi_dcs_set_display_on_multi(dsi_ctx); > + mipi_dsi_msleep(dsi_ctx, 20); > +} > + > +static int ili7807s_on(struct ili7807s *ctx) > +{ > + struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; > + > + ctx->dsi->mode_flags |= MIPI_DSI_MODE_LPM; > + > + ctx->desc->init(&dsi_ctx); > + > + ctx->dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; > + > + return dsi_ctx.accum_err; > +} > + > +static int ili7807s_off(struct ili7807s *ctx) > +{ > + struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi }; > + > + ctx->dsi->mode_flags |= MIPI_DSI_MODE_LPM; > + > + mipi_dsi_dcs_set_display_off_multi(&dsi_ctx); > + mipi_dsi_msleep(&dsi_ctx, 20); > + > + mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx); > + mipi_dsi_msleep(&dsi_ctx, 120); > + > + ctx->dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; > + > + return dsi_ctx.accum_err; > +} > + > +static int ili7807s_enable(struct drm_panel *panel) > +{ > + struct ili7807s *ctx = to_ili7807s(panel); > + > + if (ctx->backlight_en_gpio) Drop the check, if backlight_en_gpio is NULL (since optional), set_value will be a no-op. > + gpiod_set_value_cansleep(ctx->backlight_en_gpio, 1); > + > + return 0; > +} > + > +static int ili7807s_disable(struct drm_panel *panel) > +{ > + struct ili7807s *ctx = to_ili7807s(panel); > + > + if (ctx->backlight_en_gpio) Ditto > + gpiod_set_value_cansleep(ctx->backlight_en_gpio, 0); > + > + return 0; > +} > + > +static int ili7807s_prepare(struct drm_panel *panel) > +{ > + struct ili7807s *ctx = to_ili7807s(panel); > + int ret; > + > + ret = regulator_bulk_enable(ARRAY_SIZE(ili7807s_supplies), ctx->supplies); > + if (ret < 0) { > + dev_err(ctx->panel.dev, "failed to enable regulators: %d\n", ret); > + return ret; > + } > + > + msleep(20); > + > + ili7807s_reset(ctx); > + > + ret = ili7807s_on(ctx); > + if (ret < 0) { > + dev_err(ctx->panel.dev, "failed to initialise panel: %d\n", ret); > + goto err; > + } > + > + return 0; > + > +err: > + gpiod_set_value_cansleep(ctx->reset_gpio, 1); > + > + regulator_bulk_disable(ARRAY_SIZE(ili7807s_supplies), ctx->supplies); > + return ret; > +} > + > +static int ili7807s_unprepare(struct drm_panel *panel) > +{ > + struct ili7807s *ctx = to_ili7807s(panel); > + int ret; > + > + ret = ili7807s_off(ctx); > + if (ret < 0) > + dev_err(ctx->panel.dev, "failed to disable panel: %d\n", ret); > + > + gpiod_set_value_cansleep(ctx->reset_gpio, 1); > + > + regulator_bulk_disable(ARRAY_SIZE(ili7807s_supplies), ctx->supplies); > + > + return 0; > +} > + > +static int ili7807s_get_modes(struct drm_panel *panel, > + struct drm_connector *connector) > +{ > + struct ili7807s *ctx = to_ili7807s(panel); > + > + return drm_connector_helper_get_modes_fixed(connector, ctx->desc->mode); > +} > + > +static const struct drm_panel_funcs ili7807s_panel_funcs = { > + .prepare = ili7807s_prepare, > + .unprepare = ili7807s_unprepare, > + .enable = ili7807s_enable, > + .disable = ili7807s_disable, > + .get_modes = ili7807s_get_modes, > +}; > + > +static int ili7807s_bl_update_status(struct backlight_device *bl) > +{ > + struct mipi_dsi_device *dsi = bl_get_data(bl); > + u16 brightness = backlight_get_brightness(bl); > + int ret; > + > + dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; > + > + ret = mipi_dsi_dcs_set_display_brightness_large(dsi, brightness); > + if (ret < 0) > + return ret; > + > + dsi->mode_flags |= MIPI_DSI_MODE_LPM; Add back MIPI_DSI_MODE_LPM before checking ret like : + dsi->mode_flags &= ~MIPI_DSI_MODE_LPM; + + ret = mipi_dsi_dcs_set_display_brightness_large(dsi, brightness); + dsi->mode_flags |= MIPI_DSI_MODE_LPM; + if (ret < 0) + return ret; > + > + return ret; > +} > + > +static const struct backlight_ops ili7807s_bl_ops = { > + .update_status = ili7807s_bl_update_status, > +}; > + > +static struct backlight_device *ili7807s_create_backlight(struct mipi_dsi_device *dsi) > +{ > + struct device *dev = &dsi->dev; > + const struct backlight_properties props = { > + .type = BACKLIGHT_RAW, > + .brightness = 0x3fff, > + .max_brightness = 0x3fff, > + }; > + > + return devm_backlight_device_register(dev, dev_name(dev), dev, dsi, > + &ili7807s_bl_ops, &props); > +} > + > +static const struct drm_display_mode dlc0697_mode = { > + .clock = 131911, > + > + .hdisplay = 1080, > + .hsync_start = 1080 + 18, > + .hsync_end = 1080 + 18 + 2, > + .htotal = 1080 + 18 + 2 + 16, > + > + .vdisplay = 1920, > + .vsync_start = 1920 + 26, > + .vsync_end = 1920 + 26 + 4, > + .vtotal = 1920 + 26 + 4 + 20, > + > + .width_mm = 0, > + .height_mm = 0, > + .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, > +}; > + > +static const struct panel_desc dlc0697_desc = { > + .mode = &dlc0697_mode, > + .lanes = 4, > + .format = MIPI_DSI_FMT_RGB888, > + .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST, > + .init = dlc0697_init_sequence, > +}; > + > +static int ili7807s_probe(struct mipi_dsi_device *dsi) > +{ > + struct device *dev = &dsi->dev; > + const struct panel_desc *desc; > + struct ili7807s *ctx; > + int ret; > + > + ctx = devm_drm_panel_alloc(dev, struct ili7807s, panel, > + &ili7807s_panel_funcs, > + DRM_MODE_CONNECTOR_DSI); > + if (IS_ERR(ctx)) > + return PTR_ERR(ctx); > + > + desc = of_device_get_match_data(dev); > + ctx->desc = desc; > + > + ret = devm_regulator_bulk_get_const(dev, ARRAY_SIZE(ili7807s_supplies), > + ili7807s_supplies, &ctx->supplies); > + if (ret < 0) > + return dev_err_probe(dev, ret, "failed to get regulators\n"); > + > + ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); > + if (IS_ERR(ctx->reset_gpio)) > + return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), > + "failed to get reset gpio\n"); > + > + ctx->backlight_en_gpio = devm_gpiod_get_optional(dev, "backlight-en", > + GPIOD_OUT_LOW); > + if (IS_ERR(ctx->backlight_en_gpio)) > + return dev_err_probe(dev, PTR_ERR(ctx->backlight_en_gpio), > + "failed to get backlight-en gpio\n"); > + > + ctx->dsi = dsi; > + mipi_dsi_set_drvdata(dsi, ctx); > + > + dsi->lanes = desc->lanes; > + dsi->format = desc->format; > + dsi->mode_flags = desc->mode_flags; > + > + ctx->panel.prepare_prev_first = true; > + > + ctx->panel.backlight = ili7807s_create_backlight(dsi); > + if (IS_ERR(ctx->panel.backlight)) > + return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight), > + "failed to create backlight\n"); > + > + drm_panel_add(&ctx->panel); Switch to devm_drm_panel_add() > + > + ret = devm_mipi_dsi_attach(dev, dsi); > + if (ret < 0) > + return dev_err_probe(dev, ret, "failed to attach dsi\n"); > + > + return 0; > +} > + > +static void ili7807s_remove(struct mipi_dsi_device *dsi) > +{ > + struct ili7807s *ctx = mipi_dsi_get_drvdata(dsi); > + > + drm_panel_remove(&ctx->panel); > +} And drop remove > + > +static const struct of_device_id ili7807s_of_match[] = { > + { .compatible = "dlc,dlc0697", .data = &dlc0697_desc }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, ili7807s_of_match); > + > +static struct mipi_dsi_driver ili7807s_dsi_driver = { > + .probe = ili7807s_probe, > + .remove = ili7807s_remove, > + .driver = { > + .name = "panel-ilitek-ili7807s", > + .of_match_table = ili7807s_of_match, > + }, > +}; > +module_mipi_dsi_driver(ili7807s_dsi_driver); > + > +MODULE_AUTHOR("Arpit Saini <arpit.saini@oss.qualcomm.com>"); > +MODULE_DESCRIPTION("Panel driver for Ilitek ILI7807S LCD DSI panel"); > +MODULE_LICENSE("GPL"); > Thanks, Neil ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-06-06 12:16 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-18 11:04 [PATCH 0/2] drm/panel: Add driver for DLC DLC0697 DSI panel Arpit Saini 2026-05-18 11:04 ` [PATCH 1/2] dt-bindings: display: panel: add Ilitek ILI7807S panel controller Arpit Saini 2026-05-18 16:23 ` Dmitry Baryshkov 2026-05-20 12:54 ` Arpit Saini 2026-06-06 12:16 ` Dmitry Baryshkov 2026-05-19 10:32 ` Krzysztof Kozlowski 2026-05-20 12:40 ` Arpit Saini 2026-05-20 13:19 ` Krzysztof Kozlowski 2026-05-20 13:26 ` Dmitry Baryshkov 2026-05-26 10:32 ` Arpit Saini 2026-06-06 12:13 ` Dmitry Baryshkov 2026-05-18 11:04 ` [PATCH 2/2] drm/panel: add Ilitek ILI7807S panel driver Arpit Saini 2026-05-18 13:50 ` Neil Armstrong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox