dt-bindings: gpio: describe Waveshare GPIO controller

The Waveshare DSI TOUCH family of panels has separate on-board GPIO
controller, which controls power supplies to the panel and the touch
screen and provides reset pins for both the panel and the touchscreen.
Also it provides a simple PWM controller for panel backlight.

Add bindings for these GPIO controllers. As overall integration might be
not very obvious (and it differs significantly from the bindings used by
the original drivers), provide complete example with the on-board
regulators and the DSI panel.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260507-waveshare-dsi-touch-v5-1-d2ac7ccc22d4@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
Dmitry Baryshkov 2026-05-07 12:01:32 +03:00 committed by Bartosz Golaszewski
parent 87e4643ab1
commit 8cd19f5560

View File

@ -0,0 +1,73 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/waveshare,dsi-touch-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Waveshare GPIO controller on DSI TOUCH panels
maintainers:
- Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
description:
Waveshare DSI TOUCH panel kits contain separate GPIO controller for toggling
power supplies and panel / touchscreen resets.
properties:
compatible:
const: waveshare,dsi-touch-gpio
reg:
maxItems: 1
gpio-controller: true
'#gpio-cells':
const: 2
required:
- compatible
- reg
- gpio-controller
- "#gpio-cells"
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
wsgpio: gpio@45 {
compatible = "waveshare,dsi-touch-gpio";
reg = <0x45>;
gpio-controller;
#gpio-cells = <2>;
};
};
panel_avdd: regulator-panel-avdd {
compatible = "regulator-fixed";
regulator-name = "panel-avdd";
gpios = <&wsgpio 0 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
panel_iovcc: regulator-panel-iovcc {
compatible = "regulator-fixed";
regulator-name = "panel-iovcc";
gpios = <&wsgpio 4 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
panel_vcc: regulator-panel-vcc {
compatible = "regulator-fixed";
regulator-name = "panel-vcc";
gpios = <&wsgpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};
...