[PATCH 4/6] dt-bindings: mfd: sensehat: Add Raspberry Pi Sense HAT schema

From: Charles Mirabile
Date: Wed Feb 02 2022 - 19:26:13 EST


This patch adds the device tree bindings for the Sense HAT
and each of its children devices in yaml form.

Co-developed-by: Mwesigwa Guma <mguma@xxxxxxxxxx>
Signed-off-by: Mwesigwa Guma <mguma@xxxxxxxxxx>
Co-developed-by: Joel Savitz <jsavitz@xxxxxxxxxx>
Signed-off-by: Joel Savitz <jsavitz@xxxxxxxxxx>
Signed-off-by: Charles Mirabile <cmirabil@xxxxxxxxxx>
---
.../raspberrypi,sensehat-display.yaml | 32 +++++++++
.../input/raspberrypi,sensehat-joystick.yaml | 37 ++++++++++
.../bindings/mfd/raspberrypi,sensehat.yaml | 68 +++++++++++++++++++
3 files changed, 137 insertions(+)
create mode 100644 Documentation/devicetree/bindings/auxdisplay/raspberrypi,sensehat-display.yaml
create mode 100644 Documentation/devicetree/bindings/input/raspberrypi,sensehat-joystick.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/raspberrypi,sensehat.yaml

diff --git a/Documentation/devicetree/bindings/auxdisplay/raspberrypi,sensehat-display.yaml b/Documentation/devicetree/bindings/auxdisplay/raspberrypi,sensehat-display.yaml
new file mode 100644
index 000000000000..8937adba1c4b
--- /dev/null
+++ b/Documentation/devicetree/bindings/auxdisplay/raspberrypi,sensehat-display.yaml
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+$id: http://devicetree.org/schemas/auxdisplay/raspberrypi,sensehat-display.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Raspberry Pi Sensehat Display
+
+maintainers:
+ - Charles Mirabile <cmirabil@xxxxxxxxxx>
+ - Mwesigwa Guma <mguma@xxxxxxxxxx>
+ - Joel Savitz <jsavitz@xxxxxxxxxx>
+
+description:
+ This device is part of the sensehat multi function device.
+ For more information see ../mfd/raspberrypi,sensehat.yaml.
+
+ This device features a programmable 8x8 RGB LED matrix.
+
+properties:
+ compatible:
+ const: raspberrypi,sensehat-display
+
+ reg:
+ items:
+ - description: |
+ smb register number for the first component of the fist
+ pixel in the range.
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/input/raspberrypi,sensehat-joystick.yaml b/Documentation/devicetree/bindings/input/raspberrypi,sensehat-joystick.yaml
new file mode 100644
index 000000000000..a6d95c903b04
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/raspberrypi,sensehat-joystick.yaml
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+$id: http://devicetree.org/schemas/input/raspberrypi,sensehat-joystick.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Raspberry Pi Sensehat Joystick
+
+maintainers:
+ - Charles Mirabile <cmirabil@xxxxxxxxxx>
+ - Mwesigwa Guma <mguma@xxxxxxxxxx>
+ - Joel Savitz <jsavitz@xxxxxxxxxx>
+
+description:
+ This device is part of the sensehat multi function device.
+ For more information see ../mfd/raspberrypi,sensehat.yaml.
+
+ This device features a five button joystick (up, down,left,
+ right, click)
+
+properties:
+ compatible:
+ const: raspberrypi,sensehat-joystick
+
+ reg:
+ items:
+ - description: |
+ smb register number for accessing the state of the buttons
+
+ interrupts:
+ items:
+ - description: pin number for joystick interrupt
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/mfd/raspberrypi,sensehat.yaml b/Documentation/devicetree/bindings/mfd/raspberrypi,sensehat.yaml
new file mode 100644
index 000000000000..89037be87c10
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/raspberrypi,sensehat.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+$id: http://devicetree.org/schemas/mfd/raspberrypi,sensehat.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Raspberry Pi Sensehat
+
+maintainers:
+ - Charles Mirabile <cmirabil@xxxxxxxxxx>
+ - Mwesigwa Guma <mguma@xxxxxxxxxx>
+ - Joel Savitz <jsavitz@xxxxxxxxxx>
+
+description:
+ The Raspberry Pi Sensehat is an addon board originally developed
+ for the Raspberry Pi that has a joystick and an 8x8 RGB LED display
+ as well as several environmental sensors. It connects via i2c and
+ a gpio for irq.
+
+properties:
+ compatible:
+ const: raspberrypi,sensehat
+
+ reg:
+ items:
+ - description: i2c device address
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+patternProperties:
+ "^joystick(@[0-9a-f]+)?$":
+ $ref: ../input/raspberrypi,sensehat-joystick.yaml
+
+ "^display(@[0-9a-f]+)?$":
+ $ref: ../auxdisplay/raspberrypi,sensehat-display.yaml
+
+required:
+ - "#address-cells"
+ - "#size-cells"
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ sensehat@46 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "raspberrypi,sensehat";
+ reg = <0x46>;
+ display@0 {
+ compatible = "raspberrypi,sensehat-display";
+ reg = <0x0>;
+ };
+ joystick@f2 {
+ compatible = "raspberrypi,sensehat-joystick";
+ reg = <0x0>;
+ interrupts = <23 GPIO_ACTIVE_HIGH>;
+ };
+ };
+ };
--
2.31.1