* [PATCH RFC 0/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels
@ 2026-02-22 22:26 Aaron Kling via B4 Relay
2026-02-22 22:26 ` [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings Aaron Kling via B4 Relay
2026-02-22 22:26 ` [PATCH RFC 2/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels Aaron Kling via B4 Relay
0 siblings, 2 replies; 7+ messages in thread
From: Aaron Kling via B4 Relay @ 2026-02-22 22:26 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, devicetree, linux-kernel, Teguh Sobirin, Aaron Kling
This series is marked RFC because there is no ongoing maintainer to
list. I am willing to put in the effort to get this submitted in a good
and maintainable state, but I cannot promise ongoing support for it. I
see that Neil Armstrong is listed at the general panel maintainer. Is it
okay to list you in the binding? If not, is there someone willing to
take over once this is approved for merge? There are three more new
panel drivers related to AYN qcs8550 support as well.
This driver is based on the one by Teguh Sobirin [0], cut down to only
support the AYN Thor bottom panel.
[0] https://github.com/AYNTechnologies/linux/commit/d0ff75b09e66023c5f88992706dee4601aa7a437
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
---
Aaron Kling (1):
dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings
Teguh Sobirin (1):
drm/panel: Add panel driver for ChipWealth CH13726A based panels
.../display/panel/chipwealth,ch13726a.yaml | 66 +++++
drivers/gpu/drm/panel/Kconfig | 11 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c | 296 +++++++++++++++++++++
4 files changed, 374 insertions(+)
---
base-commit: fe9e3edb6a215515d1148d32a5c445c5bdd7916f
change-id: 20260220-ch13726a-59c6678d53d8
prerequisite-change-id: 20260220-ayn-vendor-a153168c29b2:v1
prerequisite-patch-id: 042cab8f04748207ba5395dd0f23c445955aaa2b
Best regards,
--
Aaron Kling <webgeek1234@gmail.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings
2026-02-22 22:26 [PATCH RFC 0/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels Aaron Kling via B4 Relay
@ 2026-02-22 22:26 ` Aaron Kling via B4 Relay
2026-03-04 16:32 ` Neil Armstrong
2026-02-22 22:26 ` [PATCH RFC 2/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels Aaron Kling via B4 Relay
1 sibling, 1 reply; 7+ messages in thread
From: Aaron Kling via B4 Relay @ 2026-02-22 22:26 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, devicetree, linux-kernel, Teguh Sobirin, Aaron Kling
From: Aaron Kling <webgeek1234@gmail.com>
The Chip Wealth Technology CH13726A display driver is a single chip
solution for AMOLED using MIPI-DSI. This is used for the AYN Thor bottom
panel.
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
---
.../display/panel/chipwealth,ch13726a.yaml | 66 ++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..890984b00c341285066176995e6a973c5607cbde
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/chipwealth,ch13726a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Chip Wealth Technology CH13726A display driver
+
+maintainers:
+ - Place Holder <place@holder.com>
+
+description:
+ Chip Wealth Technology CH13726A is a single-chip solution
+ for AMOLED connected using a MIPI-DSI video interface.
+
+allOf:
+ - $ref: panel-common.yaml#
+
+properties:
+ compatible:
+ const: ayntec,thor-panel-bottom
+
+ port: true
+ reg:
+ maxItems: 1
+ description: DSI virtual channel
+
+ vdd-supply: true
+ vddio-supply: true
+ vdd1v2-supply: true
+ avdd-supply: true
+
+ reset-gpios: true
+
+ rotation: true
+
+required:
+ - compatible
+ - reg
+ - vdd-supply
+ - vddio-supply
+ - vdd1v2-supply
+ - avdd-supply
+ - reset-gpios
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ panel@0 {
+ compatible = "ayntec,thor-panel-bottom";
+ reg = <0>;
+ vdd1v2-supply = <&vreg_l11b_1p2>;
+ vddio-supply = <&vdd_disp_1v8>;
+ vdd-supply = <&vreg_l13b_3p0>;
+ avdd-supply = <&vdd_disp2_2v8>;
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+...
--
2.52.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH RFC 2/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels
2026-02-22 22:26 [PATCH RFC 0/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels Aaron Kling via B4 Relay
2026-02-22 22:26 ` [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings Aaron Kling via B4 Relay
@ 2026-02-22 22:26 ` Aaron Kling via B4 Relay
1 sibling, 0 replies; 7+ messages in thread
From: Aaron Kling via B4 Relay @ 2026-02-22 22:26 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, devicetree, linux-kernel, Teguh Sobirin, Aaron Kling
From: Teguh Sobirin <teguh@sobir.in>
This is used by the AYN Thor for the bottom panel.
Signed-off-by: Teguh Sobirin <teguh@sobir.in>
Co-authored-by: Aaron Kling <webgeek1234@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
---
drivers/gpu/drm/panel/Kconfig | 11 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c | 296 ++++++++++++++++++++++
3 files changed, 308 insertions(+)
diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
index 307152ad77591af513086121813e6d52f9f5ed62..9791bf9850c3c29481afe46176aa474cf20ee0be 100644
--- a/drivers/gpu/drm/panel/Kconfig
+++ b/drivers/gpu/drm/panel/Kconfig
@@ -105,6 +105,17 @@ config DRM_PANEL_BOE_TV101WUM_LL2
Say Y here if you want to support for BOE TV101WUM-LL2
WUXGA PANEL DSI Video Mode panel
+config DRM_PANEL_CHIPWEALTH_CH13726A
+ tristate "CHIPWEALTH CH13726A-based DSI panel"
+ depends on OF
+ depends on DRM_MIPI_DSI
+ depends on BACKLIGHT_CLASS_DEVICE
+ select DRM_DISPLAY_DP_HELPER
+ select DRM_DISPLAY_HELPER
+ help
+ Say Y here if you want to enable support for ChipWealth
+ CH13726A-based display panels.
+
config DRM_PANEL_EBBG_FT8719
tristate "EBBG FT8719 panel driver"
depends on OF
diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile
index aeffaa95666d6d447f675bf4e8e7d28ee7c1351a..8ec0a978221016d1e34bf05c64f58232d0a2dec3 100644
--- a/drivers/gpu/drm/panel/Makefile
+++ b/drivers/gpu/drm/panel/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_DRM_PANEL_BOE_TD4320) += panel-boe-td4320.o
obj-$(CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A) += panel-boe-th101mb31ig002-28a.o
obj-$(CONFIG_DRM_PANEL_BOE_TV101WUM_LL2) += panel-boe-tv101wum-ll2.o
obj-$(CONFIG_DRM_PANEL_BOE_TV101WUM_NL6) += panel-boe-tv101wum-nl6.o
+obj-$(CONFIG_DRM_PANEL_CHIPWEALTH_CH13726A) += panel-chipwealth-ch13726a.o
obj-$(CONFIG_DRM_PANEL_DSI_CM) += panel-dsi-cm.o
obj-$(CONFIG_DRM_PANEL_LVDS) += panel-lvds.o
obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o
diff --git a/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c b/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
new file mode 100644
index 0000000000000000000000000000000000000000..89961a5a697f0bbe3f6376ddf255a1f7e1461380
--- /dev/null
+++ b/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
@@ -0,0 +1,296 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * ChipWealth CH13726A MIPI-DSI panel driver
+ * Copyright (c) 2024, Teguh Sobirin <teguh@sobir.in>.
+ */
+
+#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 <video/mipi_display.h>
+
+struct ch13726a_panel {
+ struct drm_panel panel;
+ struct mipi_dsi_device *dsi;
+ struct regulator_bulk_data supplies[4];
+ struct gpio_desc *reset_gpio;
+ const struct drm_display_mode *display_mode;
+ enum drm_panel_orientation orientation;
+ bool prepared;
+};
+
+static inline struct ch13726a_panel *to_ch13726a_panel(struct drm_panel *panel)
+{
+ return container_of(panel, struct ch13726a_panel, panel);
+}
+
+static void ch13726a_reset(struct ch13726a_panel *ctx)
+{
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ usleep_range(10000, 11000);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+ usleep_range(10000, 11000);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ usleep_range(10000, 11000);
+}
+
+static int ch13726a_on(struct ch13726a_panel *ctx)
+{
+ struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi };
+
+ ctx->dsi->mode_flags |= MIPI_DSI_MODE_LPM;
+
+ mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x50);
+ mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 0x00);
+
+ mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
+
+ mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
+
+ return dsi_ctx.accum_err;
+}
+
+static int ch13726a_disable(struct drm_panel *panel)
+{
+ struct ch13726a_panel *ctx = to_ch13726a_panel(panel);
+ 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, 50);
+ mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx);
+
+ return dsi_ctx.accum_err;
+}
+
+static int ch13726a_prepare(struct drm_panel *panel)
+{
+ struct ch13726a_panel *ctx = to_ch13726a_panel(panel);
+ struct device *dev = &ctx->dsi->dev;
+ int ret;
+
+ if (ctx->prepared)
+ return 0;
+
+ ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+ if (ret < 0) {
+ dev_err(dev, "Failed to enable regulators: %d\n", ret);
+ return ret;
+ }
+
+ ch13726a_reset(ctx);
+
+ ret = ch13726a_on(ctx);
+ if (ret < 0) {
+ dev_err(dev, "Failed to initialize panel: %d\n", ret);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+ regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+ return ret;
+ }
+
+ msleep(28);
+
+ ctx->prepared = true;
+
+ return 0;
+}
+
+static int ch13726a_unprepare(struct drm_panel *panel)
+{
+ struct ch13726a_panel *ctx = to_ch13726a_panel(panel);
+
+ if (!ctx->prepared)
+ return 0;
+
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+ regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+
+ ctx->prepared = false;
+ return 0;
+}
+
+static const struct drm_display_mode thor_bottom_display_mode = {
+ .clock = (1080 + 28 + 4 + 36) * (1240 + 16 + 4 + 8) * 60 / 1000,
+ .hdisplay = 1080,
+ .hsync_start = 1080 + 28,
+ .hsync_end = 1080 + 28 + 4,
+ .htotal = 1080 + 28 + 4 + 36,
+ .vdisplay = 1240,
+ .vsync_start = 1240 + 16,
+ .vsync_end = 1240 + 16 + 4,
+ .vtotal = 1240 + 16 + 4 + 8,
+ .width_mm = 65,
+ .height_mm = 75,
+};
+
+static int ch13726a_get_modes(struct drm_panel *panel,
+ struct drm_connector *connector)
+{
+ struct ch13726a_panel *ctx = to_ch13726a_panel(panel);
+ struct drm_display_mode *mode;
+
+ mode = drm_mode_duplicate(connector->dev, ctx->display_mode);
+ if (!mode)
+ return -ENOMEM;
+
+ drm_mode_set_name(mode);
+
+ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
+ connector->display_info.width_mm = mode->width_mm;
+ connector->display_info.height_mm = mode->height_mm;
+ drm_mode_probed_add(connector, mode);
+
+ return 1;
+}
+
+static enum drm_panel_orientation ch13726a_get_orientation(struct drm_panel *panel)
+{
+ struct ch13726a_panel *ctx = to_ch13726a_panel(panel);
+
+ return ctx->orientation;
+}
+
+static const struct drm_panel_funcs ch13726a_panel_funcs = {
+ .prepare = ch13726a_prepare,
+ .unprepare = ch13726a_unprepare,
+ .disable = ch13726a_disable,
+ .get_modes = ch13726a_get_modes,
+ .get_orientation = ch13726a_get_orientation,
+};
+
+static int ch13726a_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(dsi, brightness);
+ if (ret < 0)
+ return ret;
+
+ dsi->mode_flags |= MIPI_DSI_MODE_LPM;
+
+ return 0;
+}
+
+static const struct backlight_ops ch13726a_bl_ops = {
+ .update_status = ch13726a_bl_update_status,
+};
+
+static struct backlight_device *
+ch13726a_create_backlight(struct mipi_dsi_device *dsi)
+{
+ struct device *dev = &dsi->dev;
+ const struct backlight_properties props = {
+ .type = BACKLIGHT_RAW,
+ .brightness = 255,
+ .max_brightness = 255,
+ };
+
+ return devm_backlight_device_register(dev, dev_name(dev), dev, dsi,
+ &ch13726a_bl_ops, &props);
+}
+
+static int ch13726a_probe(struct mipi_dsi_device *dsi)
+{
+ struct device *dev = &dsi->dev;
+ struct ch13726a_panel *ctx;
+ int ret;
+
+ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+ return -ENOMEM;
+
+ ctx->display_mode = of_device_get_match_data(dev);
+
+ ctx->supplies[0].supply = "vdd1v2";
+ ctx->supplies[1].supply = "vddio";
+ ctx->supplies[2].supply = "vdd";
+ ctx->supplies[3].supply = "avdd";
+
+ ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->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-gpios\n");
+
+ ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
+ if (ret < 0) {
+ dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
+ return ret;
+ }
+
+ ctx->dsi = dsi;
+ mipi_dsi_set_drvdata(dsi, ctx);
+
+ dsi->lanes = 4;
+ dsi->format = MIPI_DSI_FMT_RGB888;
+ dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
+ MIPI_DSI_CLOCK_NON_CONTINUOUS;
+
+ drm_panel_init(&ctx->panel, dev, &ch13726a_panel_funcs,
+ DRM_MODE_CONNECTOR_DSI);
+ ctx->panel.prepare_prev_first = true;
+
+ ctx->panel.backlight = ch13726a_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 = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
+ return ret;
+ }
+
+ return 0;
+}
+
+static void ch13726a_remove(struct mipi_dsi_device *dsi)
+{
+ struct ch13726a_panel *ctx = mipi_dsi_get_drvdata(dsi);
+ int ret;
+
+ ret = mipi_dsi_detach(dsi);
+ if (ret < 0)
+ dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
+
+ drm_panel_remove(&ctx->panel);
+}
+
+static const struct of_device_id ch13726a_of_match[] = {
+ { .compatible = "ayntec,thor-panel-bottom", .data = &thor_bottom_display_mode },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, ch13726a_of_match);
+
+static struct mipi_dsi_driver ch13726a_driver = {
+ .probe = ch13726a_probe,
+ .remove = ch13726a_remove,
+ .driver = {
+ .name = "panel-ch13726a-amoled",
+ .of_match_table = ch13726a_of_match,
+ },
+};
+module_mipi_dsi_driver(ch13726a_driver);
+
+MODULE_DESCRIPTION("DRM driver for CH13726A DSI panels");
+MODULE_LICENSE("GPL");
--
2.52.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings
2026-02-22 22:26 ` [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings Aaron Kling via B4 Relay
@ 2026-03-04 16:32 ` Neil Armstrong
2026-03-04 17:56 ` Aaron Kling
0 siblings, 1 reply; 7+ messages in thread
From: Neil Armstrong @ 2026-03-04 16:32 UTC (permalink / raw)
To: webgeek1234, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: dri-devel, devicetree, linux-kernel, Teguh Sobirin
On 2/22/26 23:26, Aaron Kling via B4 Relay wrote:
> From: Aaron Kling <webgeek1234@gmail.com>
>
> The Chip Wealth Technology CH13726A display driver is a single chip
> solution for AMOLED using MIPI-DSI. This is used for the AYN Thor bottom
> panel.
>
> Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
> ---
> .../display/panel/chipwealth,ch13726a.yaml | 66 ++++++++++++++++++++++
> 1 file changed, 66 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..890984b00c341285066176995e6a973c5607cbde
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/chipwealth,ch13726a.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Chip Wealth Technology CH13726A display driver
> +
> +maintainers:
> + - Place Holder <place@holder.com>
??
> +
> +description:
> + Chip Wealth Technology CH13726A is a single-chip solution
> + for AMOLED connected using a MIPI-DSI video interface.
> +
> +allOf:
> + - $ref: panel-common.yaml#
> +
> +properties:
> + compatible:
> + const: ayntec,thor-panel-bottom
??? why not chipwealth,ch13726a ??
> +
> + port: true
> + reg:
> + maxItems: 1
> + description: DSI virtual channel
> +
> + vdd-supply: true
> + vddio-supply: true
> + vdd1v2-supply: true
> + avdd-supply: true
> +
> + reset-gpios: true
> +
> + rotation: true
> +
> +required:
> + - compatible
> + - reg
> + - vdd-supply
> + - vddio-supply
> + - vdd1v2-supply
> + - avdd-supply
> + - reset-gpios
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + dsi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + panel@0 {
> + compatible = "ayntec,thor-panel-bottom";
> + reg = <0>;
> + vdd1v2-supply = <&vreg_l11b_1p2>;
> + vddio-supply = <&vdd_disp_1v8>;
> + vdd-supply = <&vreg_l13b_3p0>;
> + avdd-supply = <&vdd_disp2_2v8>;
> + reset-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> +...
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings
2026-03-04 16:32 ` Neil Armstrong
@ 2026-03-04 17:56 ` Aaron Kling
2026-03-04 20:10 ` Neil Armstrong
0 siblings, 1 reply; 7+ messages in thread
From: Aaron Kling @ 2026-03-04 17:56 UTC (permalink / raw)
To: Neil Armstrong
Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree,
linux-kernel, Teguh Sobirin
On Wed, Mar 4, 2026 at 10:32 AM Neil Armstrong
<neil.armstrong@linaro.org> wrote:
>
> On 2/22/26 23:26, Aaron Kling via B4 Relay wrote:
> > From: Aaron Kling <webgeek1234@gmail.com>
> >
> > The Chip Wealth Technology CH13726A display driver is a single chip
> > solution for AMOLED using MIPI-DSI. This is used for the AYN Thor bottom
> > panel.
> >
> > Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
> > ---
> > .../display/panel/chipwealth,ch13726a.yaml | 66 ++++++++++++++++++++++
> > 1 file changed, 66 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..890984b00c341285066176995e6a973c5607cbde
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
> > @@ -0,0 +1,66 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/display/panel/chipwealth,ch13726a.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Chip Wealth Technology CH13726A display driver
> > +
> > +maintainers:
> > + - Place Holder <place@holder.com>
>
> ??
Please see my reply on the cover [0].
> > +
> > +description:
> > + Chip Wealth Technology CH13726A is a single-chip solution
> > + for AMOLED connected using a MIPI-DSI video interface.
> > +
> > +allOf:
> > + - $ref: panel-common.yaml#
> > +
> > +properties:
> > + compatible:
> > + const: ayntec,thor-panel-bottom
>
> ??? why not chipwealth,ch13726a ??
Because this is a driver chip that supports multiple panels. The
driver code I based on also supports the retroid pocket 5 panel, which
has a different resolution. Similar naming is used in the rocktech
jh057n00900 binding, which is why I picked this compatible.
> > +
> > + port: true
> > + reg:
> > + maxItems: 1
> > + description: DSI virtual channel
> > +
> > + vdd-supply: true
> > + vddio-supply: true
> > + vdd1v2-supply: true
> > + avdd-supply: true
> > +
> > + reset-gpios: true
> > +
> > + rotation: true
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - vdd-supply
> > + - vddio-supply
> > + - vdd1v2-supply
> > + - avdd-supply
> > + - reset-gpios
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/gpio/gpio.h>
> > +
> > + dsi {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + panel@0 {
> > + compatible = "ayntec,thor-panel-bottom";
> > + reg = <0>;
> > + vdd1v2-supply = <&vreg_l11b_1p2>;
> > + vddio-supply = <&vdd_disp_1v8>;
> > + vdd-supply = <&vreg_l13b_3p0>;
> > + avdd-supply = <&vdd_disp2_2v8>;
> > + reset-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
> > + };
> > + };
> > +
> > +...
> >
>
Aaron
[0] https://lore.kernel.org/dri-devel/20260222-ch13726a-v1-0-e501d78e105a@gmail.com/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings
2026-03-04 17:56 ` Aaron Kling
@ 2026-03-04 20:10 ` Neil Armstrong
2026-03-04 20:21 ` Aaron Kling
0 siblings, 1 reply; 7+ messages in thread
From: Neil Armstrong @ 2026-03-04 20:10 UTC (permalink / raw)
To: Aaron Kling
Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree,
linux-kernel, Teguh Sobirin
On 3/4/26 18:56, Aaron Kling wrote:
> On Wed, Mar 4, 2026 at 10:32 AM Neil Armstrong
> <neil.armstrong@linaro.org> wrote:
>>
>> On 2/22/26 23:26, Aaron Kling via B4 Relay wrote:
>>> From: Aaron Kling <webgeek1234@gmail.com>
>>>
>>> The Chip Wealth Technology CH13726A display driver is a single chip
>>> solution for AMOLED using MIPI-DSI. This is used for the AYN Thor bottom
>>> panel.
>>>
>>> Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
>>> ---
>>> .../display/panel/chipwealth,ch13726a.yaml | 66 ++++++++++++++++++++++
>>> 1 file changed, 66 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
>>> new file mode 100644
>>> index 0000000000000000000000000000000000000000..890984b00c341285066176995e6a973c5607cbde
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
>>> @@ -0,0 +1,66 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/display/panel/chipwealth,ch13726a.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Chip Wealth Technology CH13726A display driver
>>> +
>>> +maintainers:
>>> + - Place Holder <place@holder.com>
>>
>> ??
>
> Please see my reply on the cover [0].
Sorry my bad, yes add me it's fine
>
>>> +
>>> +description:
>>> + Chip Wealth Technology CH13726A is a single-chip solution
>>> + for AMOLED connected using a MIPI-DSI video interface.
>>> +
>>> +allOf:
>>> + - $ref: panel-common.yaml#
>>> +
>>> +properties:
>>> + compatible:
>>> + const: ayntec,thor-panel-bottom
>>
>> ??? why not chipwealth,ch13726a ??
>
> Because this is a driver chip that supports multiple panels. The
> driver code I based on also supports the retroid pocket 5 panel, which
> has a different resolution. Similar naming is used in the rocktech
> jh057n00900 binding, which is why I picked this compatible.
It doesn't work like that, add a compatible per physical device, not
by driver. You can add common fallbacks if the panel is the same as another.
>
>>> +
>>> + port: true
>>> + reg:
>>> + maxItems: 1
>>> + description: DSI virtual channel
>>> +
>>> + vdd-supply: true
>>> + vddio-supply: true
>>> + vdd1v2-supply: true
>>> + avdd-supply: true
>>> +
>>> + reset-gpios: true
>>> +
>>> + rotation: true
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> + - vdd-supply
>>> + - vddio-supply
>>> + - vdd1v2-supply
>>> + - avdd-supply
>>> + - reset-gpios
>>> +
>>> +additionalProperties: false
>>> +
>>> +examples:
>>> + - |
>>> + #include <dt-bindings/gpio/gpio.h>
>>> +
>>> + dsi {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + panel@0 {
>>> + compatible = "ayntec,thor-panel-bottom";
>>> + reg = <0>;
>>> + vdd1v2-supply = <&vreg_l11b_1p2>;
>>> + vddio-supply = <&vdd_disp_1v8>;
>>> + vdd-supply = <&vreg_l13b_3p0>;
>>> + avdd-supply = <&vdd_disp2_2v8>;
>>> + reset-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
>>> + };
>>> + };
>>> +
>>> +...
>>>
>>
>
> Aaron
>
> [0] https://lore.kernel.org/dri-devel/20260222-ch13726a-v1-0-e501d78e105a@gmail.com/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings
2026-03-04 20:10 ` Neil Armstrong
@ 2026-03-04 20:21 ` Aaron Kling
0 siblings, 0 replies; 7+ messages in thread
From: Aaron Kling @ 2026-03-04 20:21 UTC (permalink / raw)
To: Neil Armstrong
Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree,
linux-kernel, Teguh Sobirin
On Wed, Mar 4, 2026 at 2:10 PM Neil Armstrong <neil.armstrong@linaro.org> wrote:
>
> On 3/4/26 18:56, Aaron Kling wrote:
> > On Wed, Mar 4, 2026 at 10:32 AM Neil Armstrong
> > <neil.armstrong@linaro.org> wrote:
> >>
> >> On 2/22/26 23:26, Aaron Kling via B4 Relay wrote:
> >>> From: Aaron Kling <webgeek1234@gmail.com>
> >>>
> >>> The Chip Wealth Technology CH13726A display driver is a single chip
> >>> solution for AMOLED using MIPI-DSI. This is used for the AYN Thor bottom
> >>> panel.
> >>>
> >>> Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
> >>> ---
> >>> .../display/panel/chipwealth,ch13726a.yaml | 66 ++++++++++++++++++++++
> >>> 1 file changed, 66 insertions(+)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
> >>> new file mode 100644
> >>> index 0000000000000000000000000000000000000000..890984b00c341285066176995e6a973c5607cbde
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/display/panel/chipwealth,ch13726a.yaml
> >>> @@ -0,0 +1,66 @@
> >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>> +%YAML 1.2
> >>> +---
> >>> +$id: http://devicetree.org/schemas/display/panel/chipwealth,ch13726a.yaml#
> >>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>> +
> >>> +title: Chip Wealth Technology CH13726A display driver
> >>> +
> >>> +maintainers:
> >>> + - Place Holder <place@holder.com>
> >>
> >> ??
> >
> > Please see my reply on the cover [0].
>
> Sorry my bad, yes add me it's fine
>
> >
> >>> +
> >>> +description:
> >>> + Chip Wealth Technology CH13726A is a single-chip solution
> >>> + for AMOLED connected using a MIPI-DSI video interface.
> >>> +
> >>> +allOf:
> >>> + - $ref: panel-common.yaml#
> >>> +
> >>> +properties:
> >>> + compatible:
> >>> + const: ayntec,thor-panel-bottom
> >>
> >> ??? why not chipwealth,ch13726a ??
> >
> > Because this is a driver chip that supports multiple panels. The
> > driver code I based on also supports the retroid pocket 5 panel, which
> > has a different resolution. Similar naming is used in the rocktech
> > jh057n00900 binding, which is why I picked this compatible.
>
> It doesn't work like that, add a compatible per physical device, not
> by driver. You can add common fallbacks if the panel is the same as another.
So what should it look like then? The ch13726a is a chip that supports
multiple panels. The one I'm adding here is a 1240x1080 panel, no idea
what the manufacturer or model number is, just that it's used as the
bottom panel in the AYN Thor. The chip also supports a 1080x1920 panel
as found in the Retroid Pocket 5. Among many others. If the compatible
is chipwealth,ch13726a and nothing else, then how is the driver to
know what's plugged into the chip and what to report as the supported
modes?
> >
> >>> +
> >>> + port: true
> >>> + reg:
> >>> + maxItems: 1
> >>> + description: DSI virtual channel
> >>> +
> >>> + vdd-supply: true
> >>> + vddio-supply: true
> >>> + vdd1v2-supply: true
> >>> + avdd-supply: true
> >>> +
> >>> + reset-gpios: true
> >>> +
> >>> + rotation: true
> >>> +
> >>> +required:
> >>> + - compatible
> >>> + - reg
> >>> + - vdd-supply
> >>> + - vddio-supply
> >>> + - vdd1v2-supply
> >>> + - avdd-supply
> >>> + - reset-gpios
> >>> +
> >>> +additionalProperties: false
> >>> +
> >>> +examples:
> >>> + - |
> >>> + #include <dt-bindings/gpio/gpio.h>
> >>> +
> >>> + dsi {
> >>> + #address-cells = <1>;
> >>> + #size-cells = <0>;
> >>> + panel@0 {
> >>> + compatible = "ayntec,thor-panel-bottom";
> >>> + reg = <0>;
> >>> + vdd1v2-supply = <&vreg_l11b_1p2>;
> >>> + vddio-supply = <&vdd_disp_1v8>;
> >>> + vdd-supply = <&vreg_l13b_3p0>;
> >>> + avdd-supply = <&vdd_disp2_2v8>;
> >>> + reset-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
> >>> + };
> >>> + };
> >>> +
> >>> +...
> >>>
> >>
> >
> > Aaron
> >
> > [0] https://lore.kernel.org/dri-devel/20260222-ch13726a-v1-0-e501d78e105a@gmail.com/
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-04 20:22 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-22 22:26 [PATCH RFC 0/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels Aaron Kling via B4 Relay
2026-02-22 22:26 ` [PATCH RFC 1/2] dt-bindings: display: panel: Add ChipWealth CH13726A AMOLED driver bindings Aaron Kling via B4 Relay
2026-03-04 16:32 ` Neil Armstrong
2026-03-04 17:56 ` Aaron Kling
2026-03-04 20:10 ` Neil Armstrong
2026-03-04 20:21 ` Aaron Kling
2026-02-22 22:26 ` [PATCH RFC 2/2] drm/panel: Add panel driver for ChipWealth CH13726A based panels Aaron Kling via B4 Relay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox