aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.15/950-0661-dtoverlays-Add-option-for-PoE-HAT-to-use-Linux-I2C-i.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0661-dtoverlays-Add-option-for-PoE-HAT-to-use-Linux-I2C-i.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.15/950-0661-dtoverlays-Add-option-for-PoE-HAT-to-use-Linux-I2C-i.patch158
1 files changed, 158 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0661-dtoverlays-Add-option-for-PoE-HAT-to-use-Linux-I2C-i.patch b/target/linux/bcm27xx/patches-5.15/950-0661-dtoverlays-Add-option-for-PoE-HAT-to-use-Linux-I2C-i.patch
new file mode 100644
index 0000000000..8a8a35bb34
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.15/950-0661-dtoverlays-Add-option-for-PoE-HAT-to-use-Linux-I2C-i.patch
@@ -0,0 +1,158 @@
+From 7d4346817f31105ed07dd4e3e9fd2294c85a5fee Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Wed, 19 Jan 2022 17:29:13 +0000
+Subject: [PATCH] dtoverlays: Add option for PoE HAT to use Linux I2C
+ instead of FW.
+
+Adds parameter "i2c" to use the PoE HAT I2C MFD driver to instantiate
+the PoE HAT drivers, instead of being off the firmware.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/README | 4 ++
+ .../arm/boot/dts/overlays/rpi-poe-overlay.dts | 62 +++++++++++++++----
+ .../dts/overlays/rpi-poe-plus-overlay.dts | 15 +++++
+ 3 files changed, 69 insertions(+), 12 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -2858,6 +2858,8 @@ Params: poe_fan_temp0 Temperat
+ speeds up (default 55000)
+ poe_fan_temp3_hyst Temperature delta (in millicelcius) at which
+ the fan slows down (default 5000)
++ i2c Control the fan via Linux I2C drivers instead of
++ the firmware.
+
+
+ Name: rpi-poe-plus
+@@ -2879,6 +2881,8 @@ Params: poe_fan_temp0 Temperat
+ speeds up (default 55000)
+ poe_fan_temp3_hyst Temperature delta (in millicelcius) at which
+ the fan slows down (default 5000)
++ i2c Control the fan via Linux I2C drivers instead of
++ the firmware.
+
+
+ Name: rpi-proto
+--- a/arch/arm/boot/dts/overlays/rpi-poe-overlay.dts
++++ b/arch/arm/boot/dts/overlays/rpi-poe-overlay.dts
+@@ -8,16 +8,6 @@
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+- target = <&firmware>;
+- __overlay__ {
+- fwpwm: pwm {
+- compatible = "raspberrypi,firmware-poe-pwm";
+- #pwm-cells = <2>;
+- };
+- };
+- };
+-
+- fragment@1 {
+ target-path = "/";
+ __overlay__ {
+ fan: pwm-fan {
+@@ -29,7 +19,7 @@
+ };
+ };
+
+- fragment@2 {
++ fragment@1 {
+ target = <&cpu_thermal>;
+ __overlay__ {
+ trips {
+@@ -75,7 +65,7 @@
+ };
+ };
+
+- fragment@3 {
++ fragment@2 {
+ target-path = "/__overrides__";
+ __overlay__ {
+ poe_fan_temp0 = <&trip0>,"temperature:0";
+@@ -89,6 +79,52 @@
+ };
+ };
+
++ fragment@3 {
++ target = <&firmware>;
++ __overlay__ {
++ fwpwm: pwm {
++ compatible = "raspberrypi,firmware-poe-pwm";
++ #pwm-cells = <2>;
++ };
++ };
++ };
++
++ fragment@4 {
++ target = <&i2c0>;
++ __dormant__ {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ status = "okay";
++
++ poe_mfd: poe@51 {
++ compatible = "raspberrypi,poe-core";
++ reg = <0x51>;
++ status = "okay";
++
++ poe_mfd_pwm: poe_pwm@f0 {
++ compatible = "raspberrypi,poe-pwm";
++ reg = <0xf0>;
++ status = "okay";
++ #pwm-cells = <2>;
++ };
++ };
++ };
++ };
++
++ fragment@5 {
++ target = <&i2c0if>;
++ __dormant__ {
++ status = "okay";
++ };
++ };
++
++ fragment@6 {
++ target = <&i2c0mux>;
++ __dormant__ {
++ status = "okay";
++ };
++ };
++
+ __overrides__ {
+ poe_fan_temp0 = <&trip0>,"temperature:0";
+ poe_fan_temp0_hyst = <&trip0>,"hysteresis:0";
+@@ -98,5 +134,7 @@
+ poe_fan_temp2_hyst = <&trip2>,"hysteresis:0";
+ poe_fan_temp3 = <&trip3>,"temperature:0";
+ poe_fan_temp3_hyst = <&trip3>,"hysteresis:0";
++ i2c = <0>, "-3+4+5+6",
++ <&fan>,"pwms:0=",<&poe_mfd_pwm>;
+ };
+ };
+--- a/arch/arm/boot/dts/overlays/rpi-poe-plus-overlay.dts
++++ b/arch/arm/boot/dts/overlays/rpi-poe-plus-overlay.dts
+@@ -16,6 +16,21 @@
+ };
+ };
+ };
++ fragment@11 {
++ target = <&poe_mfd>;
++ __dormant__ {
++ rpi-poe-power-supply@f2 {
++ compatible = "raspberrypi,rpi-poe-power-supply";
++ reg = <0xf2>;
++ status = "okay";
++ };
++ };
++ };
++
++ __overrides__ {
++ i2c = <0>, "-3+4+5+6-10+11",
++ <&fan>,"pwms:0=",<&poe_mfd_pwm>;
++ };
+ };
+
+ &fan {