Skip to contentSkip to conversation

drm/panel: Add Himax HX83121A panel driver

PATCH Superseded Pengyu Luo 3 participants 9 messages Mar 15 – Mar 16

Subsystems (4)

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore

Pengyu Luo

author
#0 lore raw

v2 cover drm/panel: Add Himax HX83121A panel driver

Add a driver for panels using the Himax HX83121A Display Driver IC, including support for the BOE/CSOT PPC357DB1-4, found in HUAWEI Matebook E Go series (Gaokun2/3).

---
base-commit: d517cb8cea012f43b069617fc8179b45404f8018
---
Changes in v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)
- use backlight_enable instead of backlight_update_status to avoid NULL ptr
- Link to v2: https://lore.kernel.org/dri-devel/[email protected]

Changes in v2:
- fix dt_binding_check (Rob)
- use devm_drm_panel_alloc (Neil)
- move panels specific chunks before module probe function. (Neil)
- fix supply in .c file
- do not initialise statics to false
- Link to v1: https://lore.kernel.org/dri-devel/[email protected]

Pengyu Luo (2):
dt-bindings: display: panel: Add Himax HX83121A
drm/panel: Add Himax HX83121A panel driver

 .../display/panel/himax,hx83121a.yaml         |  86 ++
 drivers/gpu/drm/panel/Kconfig                 |  11 +
 drivers/gpu/drm/panel/Makefile                |   1 +
 drivers/gpu/drm/panel/panel-himax-hx83121a.c  | 750 ++++++++++++++++++
 4 files changed, 848 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml
 create mode 100644 drivers/gpu/drm/panel/panel-himax-hx83121a.c
Signature · 1 line
2.53.0
author
#1 lore raw

PATCH v3 1/2 dt-bindings: display: panel: Add Himax HX83121A

HX83121A is a driver IC used to drive MIPI-DSI panels. It is found in HUAWEI Matebook E Go series (Gaokun2/3) with BOE or CSOT panels.

---
v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

---
 .../display/panel/himax,hx83121a.yaml         | 86 +++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml
Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml new file +86 -0
new file mode 100644
index 0000000000..603e3ad85b
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/himax,hx83121a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Himax HX83121A based DSI display Panels
+
+maintainers:
+  - Pengyu Luo <[email protected]>
+
+description:
+  The Himax HX83121A is a generic DSI Panel IC used to drive dsi
+  panels. Support video mode panels from China Star Optoelectronics
+  Technology (CSOT) and BOE Technology.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - boe,ppc357db1-4
+          - csot,ppc357db1-4
+      - const: himax,hx83121a
+
+  reg:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  avdd-supply:
+    description: analog positive supply for IC
+
+  avee-supply:
+    description: analog negative supply for IC
+
+  vddi-supply:
+    description: power supply for IC
+
+  backlight: true
+
+required:
+  - compatible
+  - reg
+  - vddi-supply
+  - reset-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "csot,ppc357db1-4", "himax,hx83121a";
+            reg = <0>;
+
+            vddi-supply = <&vreg_l2b>;
+            reset-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    panel_in_0: endpoint {
+                        remote-endpoint = <&dsi0_out>;
+                    };
+                };
+
+                port@1{
+                    reg = <1>;
+                    panel_in_1: endpoint {
+                        remote-endpoint = <&dsi1_out>;
+                    };
+                };
+            };
+        };
+    };
+
+...
Signature · 1 line
2.53.0
#2 lore raw

Re: [PATCH v3 1/2] dt-bindings: display: panel: Add Himax HX83121A

Quoted 5 lines · Pengyu Luo

HX83121A is a driver IC used to drive MIPI-DSI panels. It is found in HUAWEI Matebook E Go series (Gaokun2/3) with BOE or CSOT panels.

Quoted 9 lines

---
v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

---
 .../display/panel/himax,hx83121a.yaml         | 86 +++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/himax,hx83121a.yaml

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/panel/himax,hx83121a.example.dtb: panel@0 (csot,ppc357db1-4): 'ports' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/display/panel/himax,hx83121a.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.kernel.org/project/devicetree/patch/[email protected]

The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.

#3 lore raw

Re: [PATCH v3 1/2] dt-bindings: display: panel: Add Himax HX83121A

In reply to Pengyu Luo
Quoted 9 lines · Pengyu Luo

HX83121A is a driver IC used to drive MIPI-DSI panels. It is found in HUAWEI Matebook E Go series (Gaokun2/3) with BOE or CSOT panels.

---
v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

And all other changes?

Why aren't you testing this code?

NAK, drop the tag and request re-review.

Best regards,
Krzysztof

author
#4 lore raw

Re: [PATCH v3 1/2] dt-bindings: display: panel: Add Himax HX83121A

Quoted 12 lines · Krzysztof Kozlowski
Quoted 9 lines · Pengyu Luo

HX83121A is a driver IC used to drive MIPI-DSI panels. It is found in HUAWEI Matebook E Go series (Gaokun2/3) with BOE or CSOT panels.

---
v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

Quoted 6 lines

And all other changes?

Why aren't you testing this code?

NAK, drop the tag and request re-review.

I see. I will send a new version later. I made changes to v1 binding by mistake.

Best wishes,
Pengyu

#5 lore raw

Re: [PATCH v3 1/2] dt-bindings: display: panel: Add Himax HX83121A

Quoted 13 lines · Pengyu Luo
Quoted 12 lines · Krzysztof Kozlowski
Quoted 9 lines · Pengyu Luo

HX83121A is a driver IC used to drive MIPI-DSI panels. It is found in HUAWEI Matebook E Go series (Gaokun2/3) with BOE or CSOT panels.

---
v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

Quoted 8 lines
Quoted 6 lines

And all other changes?

Why aren't you testing this code?

NAK, drop the tag and request re-review.

I see. I will send a new version later. I made changes to v1 binding by mistake.

And EVERY patch you sent must be build tested, which would tell you that you made mistakes. Why do you think build testing your code is our task?

Best regards,
Krzysztof

author
#6 lore raw

Re: [PATCH v3 1/2] dt-bindings: display: panel: Add Himax HX83121A

Quoted 19 lines · Krzysztof Kozlowski
Quoted 17 lines · Pengyu Luo
Quoted 16 lines · Krzysztof Kozlowski
Quoted 9 lines · Pengyu Luo

HX83121A is a driver IC used to drive MIPI-DSI panels. It is found in HUAWEI Matebook E Go series (Gaokun2/3) with BOE or CSOT panels.

---
v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

And all other changes?

Why aren't you testing this code?

Quoted 8 lines
Quoted 4 lines
Quoted 2 lines

NAK, drop the tag and request re-review.

I see. I will send a new version later. I made changes to v1 binding by mistake.

And EVERY patch you sent must be build tested, which would tell you that you made mistakes. Why do you think build testing your code is our task?

Thanks for your suggestion. I will remember that. I thought removing the descriptions would not break things since I tested the binding in v2, until I found I was using the wrong base.

Best wishes,
Pengyu

author
#7 lore raw

PATCH v3 2/2 drm/panel: Add Himax HX83121A panel driver

In reply to Pengyu Luo

Add a driver for panels using the Himax HX83121A Display Driver IC, including support for the BOE/CSOT PPC357DB1-4, found in HUAWEI Matebook E Go series (Gaokun2/3).

---
v3:
- use backlight_enable instead of backlight_update_status to avoid NULL ptr

---
 drivers/gpu/drm/panel/Kconfig                |  11 +
 drivers/gpu/drm/panel/Makefile               |   1 +
 drivers/gpu/drm/panel/panel-himax-hx83121a.c | 749 +++++++++++++++++++
 3 files changed, 761 insertions(+)
 create mode 100644 drivers/gpu/drm/panel/panel-himax-hx83121a.c
drivers/gpu/drm/panel/Kconfig +11 -0
index a99f2e2a49..c18ff46e2e 100644
@@ -203,6 +203,17 @@ config DRM_PANEL_HIMAX_HX83112B
 	  Say Y here if you want to enable support for Himax HX83112B-based
 	  display panels, such as the one found in the Fairphone 3 smartphone.
 
+config DRM_PANEL_HIMAX_HX83121A
+	tristate "Himax HX83121A-based DSI panel"
+	depends on OF
+	depends on DRM_MIPI_DSI
+	depends on BACKLIGHT_CLASS_DEVICE
+	select DRM_KMS_HELPER
+	help
+	  Say Y here if you want to enable support for Himax HX83121A-based
+	  display panels, such as the one found in the HUAWEI Matebook E Go
+          series.
+
 config DRM_PANEL_HIMAX_HX8394
 	tristate "HIMAX HX8394 MIPI-DSI LCD panels"
 	depends on OF
drivers/gpu/drm/panel/Makefile +1 -0
index 3336a2c0cd..372d67b8cc 100644
@@ -21,6 +21,7 @@ obj-$(CONFIG_DRM_PANEL_HIMAX_HX8279) += panel-himax-hx8279.o
 obj-$(CONFIG_DRM_PANEL_HIMAX_HX83102) += panel-himax-hx83102.o
 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_HX83121A) += panel-himax-hx83121a.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_IL9322) += panel-ilitek-ili9322.o
drivers/gpu/drm/panel/panel-himax-hx83121a.c new file +749 -0

749 lines not on this page · raw message

Signature · 1 line
2.53.0
#8 lore raw
In reply to Pengyu Luo
Quoted 11 lines · Pengyu Luo

Add a driver for panels using the Himax HX83121A Display Driver IC, including support for the BOE/CSOT PPC357DB1-4, found in HUAWEI Matebook E Go series (Gaokun2/3).

---
base-commit: d517cb8cea012f43b069617fc8179b45404f8018
---
Changes in v3:
- remove '|' from description (Krzysztof)
- drop description for reset-gpios (Krzysztof)

You made multuple other changes effectively breaking your binding, so it does not even pass tests.

Best regards,
Krzysztof