--- v6
+++ v2
@@ -1,35 +1,73 @@
-There is no use for the firmware interface after getting the touch
-buffer address, so release it.
+The PWM bus controlling the fan in RPi's official PoE hat can only be
+controlled by the board's co-processor.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+
---
+Changes since v1:
+ - Update bindings to use 2 #pwm-cells
-Changes since v5:
- - Correct commit message
+ .../arm/bcm/raspberrypi,bcm2835-firmware.yaml | 20 +++++++++++++++++++
+ .../pwm/raspberrypi,firmware-pwm.h | 13 ++++++++++++
+ 2 files changed, 33 insertions(+)
+ create mode 100644 include/dt-bindings/pwm/raspberrypi,firmware-pwm.h
-Changes since v3:
- - Release firmware handle in probe function
+diff --git a/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml b/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
+index a2c63c8b1d10..8029ce958c48 100644
+--- a/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
++++ b/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
+@@ -64,6 +64,21 @@ properties:
+ - compatible
+ - "#reset-cells"
+
++ pwm:
++ type: object
++
++ properties:
++ compatible:
++ const: raspberrypi,firmware-pwm
++
++ "#pwm-cells":
++ # See pwm.yaml in this directory for a description of the cells format.
++ const: 2
++
++ required:
++ - compatible
++ - "#pwm-cells"
++
+ additionalProperties: false
+
+ required:
+@@ -87,5 +102,10 @@ examples:
+ compatible = "raspberrypi,firmware-reset";
+ #reset-cells = <1>;
+ };
++
++ pwm: pwm {
++ compatible = "raspberrypi,firmware-pwm";
++ #pwm-cells = <1>;
++ };
+ };
+ ...
+diff --git a/include/dt-bindings/pwm/raspberrypi,firmware-pwm.h b/include/dt-bindings/pwm/raspberrypi,firmware-pwm.h
+new file mode 100644
+index 000000000000..27c5ce68847b
+--- /dev/null
++++ b/include/dt-bindings/pwm/raspberrypi,firmware-pwm.h
+@@ -0,0 +1,13 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * Copyright (c) 2020 Nicolas Saenz Julienne
++ * Author: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
++ */
++
++#ifndef _DT_BINDINGS_RASPBERRYPI_FIRMWARE_PWM_H
++#define _DT_BINDINGS_RASPBERRYPI_FIRMWARE_PWM_H
++
++#define RASPBERRYPI_FIRMWARE_PWM_POE 0
++#define RASPBERRYPI_FIRMWARE_PWM_NUM 1
++
++#endif
+--
+2.28.0
-Changes since v2:
- - Use devm_rpi_firmware_get(), instead of remove function
-
- drivers/input/touchscreen/raspberrypi-ts.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/input/touchscreen/raspberrypi-ts.c b/drivers/input/touchscreen/raspberrypi-ts.c
-index ef6aaed217cf..5000f5fd9ec3 100644
---- a/drivers/input/touchscreen/raspberrypi-ts.c
-+++ b/drivers/input/touchscreen/raspberrypi-ts.c
-@@ -160,7 +160,7 @@ static int rpi_ts_probe(struct platform_device *pdev)
- touchbuf = (u32)ts->fw_regs_phys;
- error = rpi_firmware_property(fw, RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF,
- &touchbuf, sizeof(touchbuf));
--
-+ rpi_firmware_put(fw);
- if (error || touchbuf != 0) {
- dev_warn(dev, "Failed to set touchbuf, %d\n", error);
- return error;
---
-2.29.2
-