Add LED control through device tree overrides (#2038)

This commit is contained in:
Stefan Agner 2022-08-04 08:36:14 +02:00 committed by GitHub
parent e2931c35ba
commit e0222ec454
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 151 additions and 42 deletions

View File

@ -1,8 +1,8 @@
From 2d3d8c091bc692999a1c519c1dc1570cc8be2358 Mon Sep 17 00:00:00 2001 From 2d3d8c091bc692999a1c519c1dc1570cc8be2358 Mon Sep 17 00:00:00 2001
Message-Id: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> Message-Id: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Mon, 11 Apr 2022 14:47:59 +0200 Date: Mon, 11 Apr 2022 14:47:59 +0200
Subject: [PATCH 01/11] ARM: dts: bcm2711: Add device tree for Home Assistant Subject: [PATCH 01/13] ARM: dts: bcm2711: Add device tree for Home Assistant
Yellow Yellow
Add device tree for Home Assistant Yellow, a Compute Module 4 based I/O Add device tree for Home Assistant Yellow, a Compute Module 4 based I/O

View File

@ -1,10 +1,10 @@
From a4a63bb6f6789c00762b92f0469d10bac525d1f9 Mon Sep 17 00:00:00 2001 From a4a63bb6f6789c00762b92f0469d10bac525d1f9 Mon Sep 17 00:00:00 2001
Message-Id: <a4a63bb6f6789c00762b92f0469d10bac525d1f9.1658843713.git.stefan@agner.ch> Message-Id: <a4a63bb6f6789c00762b92f0469d10bac525d1f9.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Thu, 4 Mar 2021 14:33:09 +0100 Date: Thu, 4 Mar 2021 14:33:09 +0100
Subject: [PATCH 02/11] ARM: dts: bcm2711: yellow: Mux UART4 for SiLabs radio Subject: [PATCH 02/13] ARM: dts: bcm2711: yellow: Mux UART4 for SiLabs radio
module module
Enable UART4 by default and mux pins including hardware flow control. Enable UART4 by default and mux pins including hardware flow control.

View File

@ -1,10 +1,10 @@
From c0ddd45166d5aa922045da915202540db3ef2dc2 Mon Sep 17 00:00:00 2001 From c0ddd45166d5aa922045da915202540db3ef2dc2 Mon Sep 17 00:00:00 2001
Message-Id: <c0ddd45166d5aa922045da915202540db3ef2dc2.1658843713.git.stefan@agner.ch> Message-Id: <c0ddd45166d5aa922045da915202540db3ef2dc2.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Thu, 4 Mar 2021 14:44:23 +0100 Date: Thu, 4 Mar 2021 14:44:23 +0100
Subject: [PATCH 03/11] ARM: dts: bcm2711: yellow: Mux debug UART5 Subject: [PATCH 03/13] ARM: dts: bcm2711: yellow: Mux debug UART5
Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Stefan Agner <stefan@agner.ch>
--- ---

View File

@ -1,10 +1,10 @@
From 606dcdc896ffc18001ad4983d45a2e23cacd040a Mon Sep 17 00:00:00 2001 From 606dcdc896ffc18001ad4983d45a2e23cacd040a Mon Sep 17 00:00:00 2001
Message-Id: <606dcdc896ffc18001ad4983d45a2e23cacd040a.1658843713.git.stefan@agner.ch> Message-Id: <606dcdc896ffc18001ad4983d45a2e23cacd040a.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Thu, 4 Mar 2021 14:48:48 +0100 Date: Thu, 4 Mar 2021 14:48:48 +0100
Subject: [PATCH 04/11] ARM: dts: bcm2711: yellow: Enable I2C6 by default Subject: [PATCH 04/13] ARM: dts: bcm2711: yellow: Enable I2C6 by default
The main I2C bus used on Yellow is I2C6. Enable it by default. The main I2C bus used on Yellow is I2C6. Enable it by default.

View File

@ -1,10 +1,10 @@
From 298d5254c1c2151b34eaf87f7e2f44205d34d909 Mon Sep 17 00:00:00 2001 From 298d5254c1c2151b34eaf87f7e2f44205d34d909 Mon Sep 17 00:00:00 2001
Message-Id: <298d5254c1c2151b34eaf87f7e2f44205d34d909.1658843713.git.stefan@agner.ch> Message-Id: <298d5254c1c2151b34eaf87f7e2f44205d34d909.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Thu, 4 Mar 2021 17:19:01 +0100 Date: Thu, 4 Mar 2021 17:19:01 +0100
Subject: [PATCH 05/11] ARM: dts: bcm2711: yellow: add I2S audio codec Subject: [PATCH 05/13] ARM: dts: bcm2711: yellow: add I2S audio codec
Add TI PCM5122 I2S audio codec. Add TI PCM5122 I2S audio codec.

View File

@ -1,10 +1,10 @@
From 41127a02d66d07d0a17e904557899b15a067a692 Mon Sep 17 00:00:00 2001 From 41127a02d66d07d0a17e904557899b15a067a692 Mon Sep 17 00:00:00 2001
Message-Id: <41127a02d66d07d0a17e904557899b15a067a692.1658843713.git.stefan@agner.ch> Message-Id: <41127a02d66d07d0a17e904557899b15a067a692.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Tue, 9 Mar 2021 15:02:53 +0100 Date: Tue, 9 Mar 2021 15:02:53 +0100
Subject: [PATCH 06/11] ARM: dts: bcm2711: yellow: enable GPIO keys Subject: [PATCH 06/13] ARM: dts: bcm2711: yellow: enable GPIO keys
Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Stefan Agner <stefan@agner.ch>
--- ---

View File

@ -1,10 +1,10 @@
From efe5e827dc0653066ebc9f71de2ccf391a4bb27e Mon Sep 17 00:00:00 2001 From efe5e827dc0653066ebc9f71de2ccf391a4bb27e Mon Sep 17 00:00:00 2001
Message-Id: <efe5e827dc0653066ebc9f71de2ccf391a4bb27e.1658843713.git.stefan@agner.ch> Message-Id: <efe5e827dc0653066ebc9f71de2ccf391a4bb27e.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Thu, 28 Oct 2021 19:38:04 +0200 Date: Thu, 28 Oct 2021 19:38:04 +0200
Subject: [PATCH 07/11] ARM: dts: bcm2711: yellow: add user LED Subject: [PATCH 07/13] ARM: dts: bcm2711: yellow: add user LED
Add yellow user LED. Add yellow user LED.

View File

@ -1,10 +1,10 @@
From 31ab383d0803e39e94472eea192e712fcc6e3cd6 Mon Sep 17 00:00:00 2001 From 31ab383d0803e39e94472eea192e712fcc6e3cd6 Mon Sep 17 00:00:00 2001
Message-Id: <31ab383d0803e39e94472eea192e712fcc6e3cd6.1658843713.git.stefan@agner.ch> Message-Id: <31ab383d0803e39e94472eea192e712fcc6e3cd6.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Fri, 12 Nov 2021 17:33:32 +0100 Date: Fri, 12 Nov 2021 17:33:32 +0100
Subject: [PATCH 08/11] ARM: dts: bcm2711: yellow: add NXP PCF85063A RTC Subject: [PATCH 08/13] ARM: dts: bcm2711: yellow: add NXP PCF85063A RTC
Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Stefan Agner <stefan@agner.ch>
--- ---

View File

@ -1,10 +1,10 @@
From f1553f413c8f53694d2f27db5b5c43d19cf1ff4f Mon Sep 17 00:00:00 2001 From f1553f413c8f53694d2f27db5b5c43d19cf1ff4f Mon Sep 17 00:00:00 2001
Message-Id: <f1553f413c8f53694d2f27db5b5c43d19cf1ff4f.1658843713.git.stefan@agner.ch> Message-Id: <f1553f413c8f53694d2f27db5b5c43d19cf1ff4f.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Fri, 7 Jan 2022 17:10:00 +0100 Date: Fri, 7 Jan 2022 17:10:00 +0100
Subject: [PATCH 09/11] ARM: dts: bcm2711: yellow: enable USB host mode by Subject: [PATCH 09/13] ARM: dts: bcm2711: yellow: enable USB host mode by
default default
The DWC2 controller is disable by default. Enable it since Home The DWC2 controller is disable by default. Enable it since Home

View File

@ -1,10 +1,10 @@
From 6f5e8133651df38d187c05bc27fd8fa25f0216da Mon Sep 17 00:00:00 2001 From 6f5e8133651df38d187c05bc27fd8fa25f0216da Mon Sep 17 00:00:00 2001
Message-Id: <6f5e8133651df38d187c05bc27fd8fa25f0216da.1658843713.git.stefan@agner.ch> Message-Id: <6f5e8133651df38d187c05bc27fd8fa25f0216da.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Wed, 27 Apr 2022 20:36:19 +0200 Date: Wed, 27 Apr 2022 20:36:19 +0200
Subject: [PATCH 10/11] ARM: dts: bcm2711: yellow: use generic activity trigger Subject: [PATCH 10/13] ARM: dts: bcm2711: yellow: use generic activity trigger
for green LED for green LED
Use the generic trigger "activity" for the green LED so that any Use the generic trigger "activity" for the green LED so that any

View File

@ -1,10 +1,10 @@
From f626368d2e2c7b5fc9066e80ef33d58071c297b6 Mon Sep 17 00:00:00 2001 From f626368d2e2c7b5fc9066e80ef33d58071c297b6 Mon Sep 17 00:00:00 2001
Message-Id: <f626368d2e2c7b5fc9066e80ef33d58071c297b6.1658843713.git.stefan@agner.ch> Message-Id: <f626368d2e2c7b5fc9066e80ef33d58071c297b6.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1658843713.git.stefan@agner.ch> References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Tue, 26 Jul 2022 15:53:59 +0200 Date: Tue, 26 Jul 2022 15:53:59 +0200
Subject: [PATCH 11/11] ARM: dts: bcm2711: yellow: use USB OTG mode by default Subject: [PATCH 11/13] ARM: dts: bcm2711: yellow: use USB OTG mode by default
OTG seems to work fine, and allows to use the USB-C port as a USB OTG seems to work fine, and allows to use the USB-C port as a USB
peripheral (e.g. in U-Boot via UMS command). peripheral (e.g. in U-Boot via UMS command).

View File

@ -0,0 +1,41 @@
From 01e15ae929bb8442f3c9cb31b7cad182ecc4d520 Mon Sep 17 00:00:00 2001
Message-Id: <01e15ae929bb8442f3c9cb31b7cad182ecc4d520.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch>
Date: Sat, 30 Jul 2022 11:12:13 +0200
Subject: [PATCH 12/13] gpio: raspberrypi-exp: Workaround polarity firmware bug
When configuring a GPIO as output, the firmware seems to invert the
initial state when active low polarity is declared in the device tree.
The bug has been acknowledged by the firmware team and will be fixed
in a future firmware release:
https://github.com/raspberrypi/linux/issues/5107
Fix this by inverting the polarity on our side as well to make sure
the initial output is set correctly.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
drivers/gpio/gpio-raspberrypi-exp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpio/gpio-raspberrypi-exp.c b/drivers/gpio/gpio-raspberrypi-exp.c
index 64a552ecc2ad..f986940c3a5d 100644
--- a/drivers/gpio/gpio-raspberrypi-exp.c
+++ b/drivers/gpio/gpio-raspberrypi-exp.c
@@ -119,6 +119,11 @@ static int rpi_exp_gpio_dir_out(struct gpio_chip *gc, unsigned int off, int val)
return ret;
set_out.polarity = ret; /* Retain existing setting */
+ /* Need to invert the GPIO in first config set if inverted polarity */
+ /* See https://github.com/raspberrypi/linux/issues/5107 */
+ if (set_out.polarity)
+ set_out.state = !val;
+
ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_SET_GPIO_CONFIG,
&set_out, sizeof(set_out));
if (ret || set_out.gpio != 0) {
--
2.37.1

View File

@ -0,0 +1,68 @@
From 713afd6c80d4635306682a5643799195846271b1 Mon Sep 17 00:00:00 2001
Message-Id: <713afd6c80d4635306682a5643799195846271b1.1659172941.git.stefan@agner.ch>
In-Reply-To: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
References: <2d3d8c091bc692999a1c519c1dc1570cc8be2358.1659172941.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch>
Date: Sat, 30 Jul 2022 11:21:31 +0200
Subject: [PATCH 13/13] ARM: dts: bcm2711: yellow: Add LED overrides
Add device tree overrides for all three LEDs.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
index f354bfb69093..2d272a02128b 100644
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
@@ -621,20 +621,24 @@ audio_pins: audio_pins {
&leds {
act_led: led-act {
- label = "led0";
+ label = "act";
linux,default-trigger = "activity";
+ default-state = "off";
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
};
pwr_led: led-pwr {
- label = "led1";
+ label = "pwr";
linux,default-trigger = "default-on";
+ default-state = "off";
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
};
- user_led: led-user {
- label = "led2";
+ usr_led: led-usr {
+ label = "usr";
linux,default-trigger = "heartbeat";
+ default-state = "off";
+ panic-indicator;
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
};
};
@@ -670,14 +674,13 @@ cam0_reg: &cam1_reg {
/ {
__overrides__ {
- act_led_gpio = <&act_led>,"gpios:4";
- act_led_activelow = <&act_led>,"gpios:8";
act_led_trigger = <&act_led>,"linux,default-trigger";
- pwr_led_gpio = <&pwr_led>,"gpios:4";
pwr_led_activelow = <&pwr_led>,"gpios:8";
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
+ usr_led_trigger = <&usr_led>,"linux,default-trigger";
+
eth_led0 = <&phy1>,"led-modes:0";
eth_led1 = <&phy1>,"led-modes:4";
--
2.37.1