Adds PWM controller and keyboard backlight bindings for M1 MacBooks
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Acked-by: Sven Peter <sven@svenpeter.dev>
---
arch/arm64/boot/dts/apple/t8103-j293.dts | 17 +++++++++++++++++
arch/arm64/boot/dts/apple/t8103-j313.dts | 17 +++++++++++++++++
arch/arm64/boot/dts/apple/t8103.dtsi | 9 +++++++++
3 files changed, 43 insertions(+)
diff --git a/arch/arm64/boot/dts/apple/t8103-j293.dts b/arch/arm64/boot/dts/apple/t8103-j293.dts
index 151074109a11..7381dccc1613 100644
--- a/arch/arm64/boot/dts/apple/t8103-j293.dts
+++ b/arch/arm64/boot/dts/apple/t8103-j293.dts
@@ -11,10 +11,23 @@
#include "t8103.dtsi"
#include "t8103-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
/ {
compatible = "apple,j293", "apple,t8103", "apple,arm-platform";
model = "Apple MacBook Pro (13-inch, M1, 2020)";
+
+ led-controller {
+ compatible = "pwm-leds";
+ led-0 {
+ pwms = <&fpwm1 0 40000>;
+ label = "kbd_backlight";
+ function = LED_FUNCTION_KBD_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ max-brightness = <255>;
+ default-state = "keep";
+ };
+ };
};
&bluetooth0 {
@@ -47,3 +60,7 @@ &i2c2 {
&i2c4 {
status = "okay";
};
+
+&fpwm1 {
+ status = "okay";
+};
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/apple/t8103-j313.dts b/arch/arm64/boot/dts/apple/t8103-j313.dts
index bc1f865aa790..1e26aa1ef525 100644
--- a/arch/arm64/boot/dts/apple/t8103-j313.dts
+++ b/arch/arm64/boot/dts/apple/t8103-j313.dts
@@ -11,10 +11,23 @@
#include "t8103.dtsi"
#include "t8103-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
/ {
compatible = "apple,j313", "apple,t8103", "apple,arm-platform";
model = "Apple MacBook Air (M1, 2020)";
+
+ led-controller {
+ compatible = "pwm-leds";
+ led-0 {
+ pwms = <&fpwm1 0 40000>;
+ label = "kbd_backlight";
+ function = LED_FUNCTION_KBD_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ max-brightness = <255>;
+ default-state = "keep";
+ };
+ };
};
&bluetooth0 {
@@ -39,3 +52,7 @@ &pcie0_dart_2 {
/delete-node/ &port01;
/delete-node/ &port02;
+
+&fpwm1 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi
index 9859219699f4..5300fd115561 100644
--- a/arch/arm64/boot/dts/apple/t8103.dtsi
+++ b/arch/arm64/boot/dts/apple/t8103.dtsi
@@ -432,6 +432,15 @@ i2c4: i2c@235020000 {
status = "disabled"; /* only used in J293 */
};
+ fpwm1: pwm@235044000 {
+ compatible = "apple,t8103-fpwm", "apple,s5l-fpwm";
+ reg = <0x2 0x35044000 0x0 0x4000>;
+ power-domains = <&ps_fpwm1>;
+ clocks = <&clkref>;
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
serial0: serial@235200000 {
compatible = "apple,s5l-uart";
reg = <0x2 0x35200000 0x0 0x1000>;
--
2.37.1 (Apple Git-137.1)
On Sat, Jan 14, 2023 at 04:25:06PM +0300, Sasha Finkelstein wrote: > Adds PWM controller and keyboard backlight bindings for M1 MacBooks > > Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com> > Acked-by: Sven Peter <sven@svenpeter.dev> > --- > arch/arm64/boot/dts/apple/t8103-j293.dts | 17 +++++++++++++++++ > arch/arm64/boot/dts/apple/t8103-j313.dts | 17 +++++++++++++++++ > arch/arm64/boot/dts/apple/t8103.dtsi | 9 +++++++++ > 3 files changed, 43 insertions(+) > > diff --git a/arch/arm64/boot/dts/apple/t8103-j293.dts b/arch/arm64/boot/dts/apple/t8103-j293.dts > index 151074109a11..7381dccc1613 100644 > --- a/arch/arm64/boot/dts/apple/t8103-j293.dts > +++ b/arch/arm64/boot/dts/apple/t8103-j293.dts > @@ -11,10 +11,23 @@ > > #include "t8103.dtsi" > #include "t8103-jxxx.dtsi" > +#include <dt-bindings/leds/common.h> > > / { > compatible = "apple,j293", "apple,t8103", "apple,arm-platform"; > model = "Apple MacBook Pro (13-inch, M1, 2020)"; > + > + led-controller { > + compatible = "pwm-leds"; > + led-0 { > + pwms = <&fpwm1 0 40000>; > + label = "kbd_backlight"; > + function = LED_FUNCTION_KBD_BACKLIGHT; > + color = <LED_COLOR_ID_WHITE>; > + max-brightness = <255>; > + default-state = "keep"; > + }; > + }; > }; > > &bluetooth0 { > @@ -47,3 +60,7 @@ &i2c2 { > &i2c4 { > status = "okay"; > }; > + > +&fpwm1 { > + status = "okay"; > +}; > \ No newline at end of file This missing newline looks wrong. Otherwise the patch looks fine to me. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
On Wed, 15 Feb 2023 at 12:16, Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote: > > This missing newline looks wrong. > > Otherwise the patch looks fine to me. > Do you want a respin, or can this be fixed when applying the patch?
Hello Sasha, On Wed, Feb 15, 2023 at 05:47:07PM +0100, Sasha Finkelstein wrote: > On Wed, 15 Feb 2023 at 12:16, Uwe Kleine-König > <u.kleine-koenig@pengutronix.de> wrote: > > > > This missing newline looks wrong. > > > > Otherwise the patch looks fine to me. > > Do you want a respin, or can this be fixed when applying the patch? I'm not the one who will apply this patch, so I cannot say. Having said that, I wonder who will apply. Will this go via the arm tree, or via pwm? Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
On Wed, 15 Feb 2023 at 19:04, Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote: > I'm not the one who will apply this patch, so I cannot say. Having said > that, I wonder who will apply. Will this go via the arm tree, or via > pwm? That is a good question: The pwm driver should probably go via the pwm tree, but the device tree changes would be better via asahi-soc. That leaves the bindings as the, "no idea which one". I wouldn't mind hearing from marcan or Krzysztof as to what their thoughts are on how to send it properly.
Hi, > > On 15. Feb 2023, at 19:19, Sasha Finkelstein <fnkl.kernel@gmail.com> wrote: > > On Wed, 15 Feb 2023 at 19:04, Uwe Kleine-König > <u.kleine-koenig@pengutronix.de> wrote: >> I'm not the one who will apply this patch, so I cannot say. Having said >> that, I wonder who will apply. Will this go via the arm tree, or via >> pwm? > > That is a good question: The pwm driver should probably go via the > pwm tree, but the device tree changes would be better via asahi-soc. > That leaves the bindings as the, "no idea which one". > I wouldn't mind hearing from marcan or Krzysztof as to what their > thoughts are on how to send it properly. The usual process is to take the dt-binding changes and the driver through the subsystem tree (I guess pwm in this case) and the changes to the device trees themselves through our asahi-soc and then through Arnd’s soc tree. Sven
© 2016 - 2025 Red Hat, Inc.