diff mbox series

[v7,3/5] arm64: dts: apple: t8103: Add PWM controller

Message ID 20230114132508.96600-4-fnkl.kernel@gmail.com
State Superseded
Headers show
Series PWM and keyboard backlight driver for ARM Macs | expand

Commit Message

Sasha Finkelstein Jan. 14, 2023, 1:25 p.m. UTC
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(+)

Comments

Uwe Kleine-König Feb. 15, 2023, 11:16 a.m. UTC | #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
Sasha Finkelstein Feb. 15, 2023, 4:47 p.m. UTC | #2
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?
Uwe Kleine-König Feb. 15, 2023, 6:04 p.m. UTC | #3
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
Sasha Finkelstein Feb. 15, 2023, 6:19 p.m. UTC | #4
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.
Sven Peter Feb. 15, 2023, 6:22 p.m. UTC | #5
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
diff mbox series

Patch

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>;