Skip to contentSkip to conversation

PWM and keyboard backlight driver for ARM Macs

PATCH Superseded Sasha Finkelstein 4 participants 14 messages Nov 2, 2022 – Nov 6, 2022

Subsystems (3)

v2 of 9 Superseded Latest is v9 →

lore
Share & tools
lore
#0 lore raw

v2 cover PWM and keyboard backlight driver for ARM Macs

Hi,

This is the v2 of the patch series to add PWM and keyboard backlight drivers for ARM macs. The changes from v1 address the review comments on that patch set.

v1: https://www.spinics.net/lists/linux-pwm/msg19500.html

Best Regards.

Sasha Finkelstein (4):
dt-bindings: pwm: Add Apple PWM controller
pwm: Add Apple PWM controller
arm64: dts: apple: t8103: Add PWM controller
MAINTAINERS: Add entries for Apple PWM driver

 .../bindings/pwm/apple,s5l-fpwm.yaml          |  51 +++++++
 MAINTAINERS                                   |   2 +
 arch/arm64/boot/dts/apple/t8103-j293.dts      |  20 +++
 arch/arm64/boot/dts/apple/t8103-j313.dts      |  20 +++
 arch/arm64/boot/dts/apple/t8103.dtsi          |   9 ++
 drivers/pwm/Kconfig                           |  12 ++
 drivers/pwm/Makefile                          |   1 +
 drivers/pwm/pwm-apple.c                       | 127 ++++++++++++++++++
 8 files changed, 242 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
 create mode 100644 drivers/pwm/pwm-apple.c
Signature · 1 line
2.37.3
#1 lore raw

PATCH v2 1/4 dt-bindings: pwm: Add Apple PWM controller

Apple SoCs such as the M1 contain a PWM controller used among other things to control the keyboard backlight.

---
 .../bindings/pwm/apple,s5l-fpwm.yaml          | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml new file +51 -0
new file mode 100644
index 000000000000..142157bff0cd
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/apple,s5l-fpwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple FPWM controller
+
+maintainers:
+  - [email protected]
+  - Sasha Finkelstein <[email protected]>
+
+description: PWM controller used for keyboard backlight on ARM Macs
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - apple,t8103-fpwm
+          - apple,t6000-fpwm
+          - apple,t8112-fpwm
+      - const: apple,s5l-fpwm
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 2
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    pwm@235044000 {
+      compatible = "apple,t8103-fpwm", "apple,s5l-fpwm";
+      reg = <0x35044000 0x4000>;
+      power-domains = <&ps_fpwm1>;
+      clocks = <&clkref>;
+      #pwm-cells = <2>;
+    };
Signature · 1 line
2.37.3
#3 lore raw

PATCH v2 2/4 pwm: Add Apple PWM controller

In reply to Sasha Finkelstein

Adds the Apple PWM controller driver.

---
 drivers/pwm/Kconfig     |  12 ++++
 drivers/pwm/Makefile    |   1 +
 drivers/pwm/pwm-apple.c | 127 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 140 insertions(+)
 create mode 100644 drivers/pwm/pwm-apple.c
drivers/pwm/Kconfig +12 -0
index 60d13a949bc5..c3be11468414 100644
@@ -51,6 +51,18 @@ config PWM_AB8500
 	  To compile this driver as a module, choose M here: the module
 	  will be called pwm-ab8500.
 
+config PWM_APPLE
+	tristate "Apple SoC PWM support"
+	depends on ARCH_APPLE || COMPILE_TEST
+	help
+	  Generic PWM framework driver for PWM controller present on
+	  Apple SoCs
+
+	  Say Y here if you have an ARM Apple laptop, otherwise say N
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called pwm-apple.
+
 config PWM_ATMEL
 	tristate "Atmel PWM support"
 	depends on ARCH_AT91 || COMPILE_TEST
drivers/pwm/Makefile +1 -0
index 7bf1a29f02b8..19899b912e00 100644
@@ -2,6 +2,7 @@
 obj-$(CONFIG_PWM)		+= core.o
 obj-$(CONFIG_PWM_SYSFS)		+= sysfs.o
 obj-$(CONFIG_PWM_AB8500)	+= pwm-ab8500.o
+obj-$(CONFIG_PWM_APPLE)		+= pwm-apple.o
 obj-$(CONFIG_PWM_ATMEL)		+= pwm-atmel.o
 obj-$(CONFIG_PWM_ATMEL_HLCDC_PWM)	+= pwm-atmel-hlcdc.o
 obj-$(CONFIG_PWM_ATMEL_TCB)	+= pwm-atmel-tcb.o
drivers/pwm/pwm-apple.c new file +127 -0

127 lines not on this page · raw message

Signature · 1 line
2.37.3
#4 lore raw

RE: [PATCH v2 2/4] pwm: Add Apple PWM controller

Hi Sasha Finkelstein,

Thanks for the patch.

Quoted 58 lines

Subject: [PATCH v2 2/4] pwm: Add Apple PWM controller

Adds the Apple PWM controller driver.

---
 drivers/pwm/Kconfig     |  12 ++++
 drivers/pwm/Makefile    |   1 +
 drivers/pwm/pwm-apple.c | 127
++++++++++++++++++++++++++++++++++++++++
 3 files changed, 140 insertions(+)
 create mode 100644 drivers/pwm/pwm-apple.c
drivers/pwm/Kconfig index renamed from drivers/pwm/Kconfig +0 -0

60d13a949bc5..c3be11468414 100644

drivers/pwm/Kconfig +12 -0
@@ -51,6 +51,18 @@ config PWM_AB8500
 	  To compile this driver as a module, choose M here: the module
 	  will be called pwm-ab8500.
 
+config PWM_APPLE
+	tristate "Apple SoC PWM support"
+	depends on ARCH_APPLE || COMPILE_TEST
+	help
+	  Generic PWM framework driver for PWM controller present on
+	  Apple SoCs
+
+	  Say Y here if you have an ARM Apple laptop, otherwise say N
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called pwm-apple.
+
 config PWM_ATMEL
 	tristate "Atmel PWM support"
 	depends on ARCH_AT91 || COMPILE_TEST
drivers/pwm/Makefile index renamed from drivers/pwm/Makefile +0 -0

7bf1a29f02b8..19899b912e00 100644

drivers/pwm/Makefile +1 -0
@@ -2,6 +2,7 @@
 obj-$(CONFIG_PWM)		+= core.o
 obj-$(CONFIG_PWM_SYSFS)		+= sysfs.o
 obj-$(CONFIG_PWM_AB8500)	+= pwm-ab8500.o
+obj-$(CONFIG_PWM_APPLE)		+= pwm-apple.o
 obj-$(CONFIG_PWM_ATMEL)		+= pwm-atmel.o
 obj-$(CONFIG_PWM_ATMEL_HLCDC_PWM)	+= pwm-atmel-hlcdc.o
 obj-$(CONFIG_PWM_ATMEL_TCB)	+= pwm-atmel-tcb.o
drivers/pwm/pwm-apple.c new renamed from drivers/pwm/pwm-apple.c +0 -0

file mode 100644 index 000000000000..7b2936346f4e

drivers/pwm/pwm-apple.c new file +5 -0
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Driver for the Apple SoC PWM controller
+ *
+ * Copyright The Asahi Linux Contributors  */

drivers/pwm/pwm-apple.c line 15

Quoted 10 lines
drivers/pwm/pwm-apple.c new file +10 -0
+
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/pwm.h>
+#include <linux/io.h>
+#include <linux/clk.h>
+#include <linux/pm_runtime.h>
+#include <linux/math64.h>

May be sort header alphabetically??

Quoted 77 lines
drivers/pwm/pwm-apple.c new file +19 -0
+
+#define PWM_CONTROL     0x00
+#define PWM_ON_CYCLES   0x1c
+#define PWM_OFF_CYCLES  0x18
+
+#define CTRL_ENABLE        BIT(0)
+#define CTRL_MODE          BIT(2)
+#define CTRL_UPDATE        BIT(5)
+#define CTRL_TRIGGER       BIT(9)
+#define CTRL_INVERT        BIT(10)
+#define CTRL_OUTPUT_ENABLE BIT(14)
+
+struct apple_pwm {
+	struct pwm_chip chip;
+	void __iomem *base;
+	u64 clkrate;
+};
+
+static int apple_pwm_apply(struct pwm_chip *chip, struct pwm_device

*pwm,

drivers/pwm/pwm-apple.c new file +11 -0
+			   const struct pwm_state *state)
+{
+	struct apple_pwm *fpwm;
+	u64 on_cycles, off_cycles;
+
+	fpwm = container_of(chip, struct apple_pwm, chip);
+	if (state->enabled) {
+		on_cycles = mul_u64_u64_div_u64(fpwm->clkrate,
+						state->duty_cycle, NSEC_PER_SEC);
+		off_cycles = mul_u64_u64_div_u64(fpwm->clkrate,
+						 state->period, NSEC_PER_SEC) -

on_cycles;

drivers/pwm/pwm-apple.c new file +11 -0
+		writel(on_cycles, fpwm->base + PWM_ON_CYCLES);
+		writel(off_cycles, fpwm->base + PWM_OFF_CYCLES);
+		writel(CTRL_ENABLE | CTRL_OUTPUT_ENABLE | CTRL_UPDATE,
+		       fpwm->base + PWM_CONTROL);
+	} else {
+		writel(0, fpwm->base + PWM_CONTROL);
+	}
+	return 0;
+}
+
+static void apple_pwm_get_state(struct pwm_chip *chip, struct

pwm_device *pwm,

drivers/pwm/pwm-apple.c new file +12 -0
+			   struct pwm_state *state)
+{
+	struct apple_pwm *fpwm;
+	u32 on_cycles, off_cycles, ctrl;
+
+	fpwm = container_of(chip, struct apple_pwm, chip);
+
+	ctrl = readl(fpwm->base + PWM_CONTROL);
+	on_cycles = readl(fpwm->base + PWM_ON_CYCLES);
+	off_cycles = readl(fpwm->base + PWM_OFF_CYCLES);
+
+	state->enabled = (ctrl & CTRL_ENABLE) && (ctrl &

CTRL_OUTPUT_ENABLE);

drivers/pwm/pwm-apple.c new file +2 -0
+	state->polarity = PWM_POLARITY_NORMAL;
+	state->duty_cycle = div_u64(on_cycles, fpwm->clkrate) *

NSEC_PER_SEC;

drivers/pwm/pwm-apple.c new file +17 -0
+	state->period = div_u64(off_cycles + on_cycles, fpwm->clkrate) *
+NSEC_PER_SEC; }
+
+static const struct pwm_ops apple_pwm_ops = {
+	.apply = apple_pwm_apply,
+	.get_state = apple_pwm_get_state,
+	.owner = THIS_MODULE,
+};
+
+static int apple_pwm_probe(struct platform_device *pdev) {
+	struct apple_pwm *pwm;
+	struct clk *clk;
+	int ret;
+
+	pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL);
+	if (!pwm)
+		return -ENOMEM;

drivers/pwm/pwm-apple.c line 99

Quoted 10 lines
drivers/pwm/pwm-apple.c new file +10 -0
+
+	pwm->base = devm_platform_ioremap_resource(pdev, 0);
+	if (IS_ERR(pwm->base))
+		return PTR_ERR(pwm->base);
+
+	platform_set_drvdata(pdev, pwm);
+
+	clk = devm_clk_get_enabled(&pdev->dev, NULL);
+	if (IS_ERR(clk))
+		return PTR_ERR(clk);

What is your use case?

PWM is configured by bootloader intially??

Or

PWM is configured by Linux not by the bootloader?

Or

Driver needs to support both ??

Cheers,
Biju

Quoted 42 lines
drivers/pwm/pwm-apple.c new file +28 -1
+
+	pwm->clkrate = clk_get_rate(clk);
+	pwm->chip.dev = &pdev->dev;
+	pwm->chip.npwm = 1;
+	pwm->chip.ops = &apple_pwm_ops;
+
+	ret = devm_pwmchip_add(&pdev->dev, &pwm->chip);
+	return ret;
+}
+
+static const struct of_device_id apple_pwm_of_match[] = {
+	{ .compatible = "apple,s5l-fpwm" },
+	{}
+};
+MODULE_DEVICE_TABLE(of, apple_pwm_of_match);
+
+static struct platform_driver apple_pwm_driver = {
+	.probe = apple_pwm_probe,
+	.driver = {
+		.name = "apple-pwm",
+		.owner = THIS_MODULE,
+		.of_match_table = apple_pwm_of_match,
+	},
+};
+module_platform_driver(apple_pwm_driver);
+
+MODULE_DESCRIPTION("Apple SoC PWM driver"); MODULE_LICENSE("Dual
+MIT/GPL");
--

2.37.3

_______________________________________________
linux-arm-kernel mailing list [email protected]
https://jpn01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists
.infradead.org%2Fmailman%2Flistinfo%2Flinux-arm- kernel&amp;data=05%7C01%7Cbiju.das.jz%40bp.renesas.com%7C0ff5a9275b954 eff39ae08dabcde3c28%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C63802 9959918512569%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2lu MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=zdoRENBcN FUDLdqC8wOspyvoOzRsTkBkS01Q8ff9okk%3D&amp;reserved=0

#5 lore raw

Re: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 8 lines · Biju Das

drivers/pwm/pwm-apple.c line 99

Quoted 3 lines
drivers/pwm/pwm-apple.c new file +3 -0
+     clk = devm_clk_get_enabled(&pdev->dev, NULL);
+     if (IS_ERR(clk))
+             return PTR_ERR(clk);

What is your use case?

PWM is configured by bootloader intially??

Quoted 7 lines

Or

PWM is configured by Linux not by the bootloader?

Or

Driver needs to support both ??

The PWM device itself is configured by linux, but the clock it uses is the systemwide 24 MHz clock, and that is configured by platform firmware.

#6 lore raw

RE: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 16 lines

Subject: Re: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 12 lines · Biju Das

drivers/pwm/pwm-apple.c line 99

Quoted 3 lines
drivers/pwm/pwm-apple.c new file +3 -0
+     clk = devm_clk_get_enabled(&pdev->dev, NULL);
+     if (IS_ERR(clk))
+             return PTR_ERR(clk);

What is your use case?

PWM is configured by bootloader intially??

Or

PWM is configured by Linux not by the bootloader?

Quoted 7 lines
Quoted 3 lines

Or

Driver needs to support both ??

The PWM device itself is configured by linux, but the clock it uses is the systemwide 24 MHz clock, and that is configured by platform firmware.

I just asked, because you are unnecessarily turning on the clock or increasing the usage Count, even if it is not used by anyone during probe.

Cheers,
Biju

#7 lore raw

Re: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 2 lines · Biju Das

I just asked, because you are unnecessarily turning on the clock or increasing the usage Count, even if it is not used by anyone during probe.

It is used to get the clock rate so it can be used to convert between seconds and pwm ticks, and the pwm uses that clock, so it is kept enabled while the pwm is active.

#8 lore raw

RE: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 6 lines

Subject: Re: [PATCH v2 2/4] pwm: Add Apple PWM controller

On Wed, 2 Nov 2022 at 19:02, Biju Das <[email protected]> wrote:

Quoted 7 lines
Quoted 2 lines

I just asked, because you are unnecessarily turning on the clock or increasing the usage Count, even if it is not used by anyone during

probe.

It is used to get the clock rate so it can be used to convert between seconds and pwm ticks, and the pwm uses that clock, so it is kept enabled while the pwm is active.

You don't need to enable the pwm clock for getting the clock rate. devm_clk_get() and then get the rate.

Then enable the clk whenever pwm is enabled
And disable the clk whenever pwm is disabled.

Cheers,
Biju

#9 lore raw

Re: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 3 lines · Biju Das

Then enable the clk whenever pwm is enabled
And disable the clk whenever pwm is disabled.

I can do that, but I do not see the point in doing that. This clock is active whenever the system is turned on, all this will result in is some unnecessary clock refcount increments/decrements.

#10 lore raw

RE: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 10 lines

Subject: Re: [PATCH v2 2/4] pwm: Add Apple PWM controller

Quoted 3 lines · Biju Das

Then enable the clk whenever pwm is enabled And disable the clk whenever pwm is disabled.

I can do that, but I do not see the point in doing that. This clock is active whenever the system is turned on, all this will result in is some unnecessary clock refcount increments/decrements.

OK for me, as I do not know about your system. I just pointed out you are unnecessarily turning on the clock during probe even if the pwm is not used.

Cheers,
Biju

#11 lore raw

PATCH v2 3/4 arm64: dts: apple: t8103: Add PWM controller

In reply to Sasha Finkelstein

Adds PWM controller and keyboard backlight bindings for M1 MacBooks

---
 arch/arm64/boot/dts/apple/t8103-j293.dts | 20 ++++++++++++++++++++
 arch/arm64/boot/dts/apple/t8103-j313.dts | 20 ++++++++++++++++++++
 arch/arm64/boot/dts/apple/t8103.dtsi     |  9 +++++++++
 3 files changed, 49 insertions(+)
arch/arm64/boot/dts/apple/t8103-j293.dts +20 -0
index ecb10d237a05..0b4b7e8e0726 100644
@@ -11,6 +11,7 @@
 
 #include "t8103.dtsi"
 #include "t8103-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
 
 / {
 	compatible = "apple,j293", "apple,t8103", "apple,arm-platform";
@@ -43,3 +44,22 @@ &i2c2 {
 &i2c4 {
 	status = "okay";
 };
+
+/ {
+	led-controller {
+		compatible = "pwm-leds";
+		led-0 {
+			pwms = <&fpwm1 0 40000>;
+			pwm-names = "kbd-backlight";
+			label = "kbd_backlight";
+			function = LED_FUNCTION_KBD_BACKLIGHT;
+			color = <LED_COLOR_ID_WHITE>;
+			max-brightness = <255>;
+			default-state = "keep";
+		};
+	};
+};
+
+&fpwm1 {
+	status = "okay";
+};
arch/arm64/boot/dts/apple/t8103-j313.dts +20 -0
index df741737b8e6..0e0f57dee96b 100644
@@ -11,6 +11,7 @@
 
 #include "t8103.dtsi"
 #include "t8103-jxxx.dtsi"
+#include <dt-bindings/leds/common.h>
 
 / {
 	compatible = "apple,j313", "apple,t8103", "apple,arm-platform";
@@ -35,3 +36,22 @@ &pcie0_dart_2 {
 
 /delete-node/ &port01;
 /delete-node/ &port02;
+
+/ {
+	led-controller {
+		compatible = "pwm-leds";
+		led-0 {
+			pwms = <&fpwm1 0 40000>;
+			pwm-names = "kbd-backlight";
+			label = "kbd_backlight";
+			function = LED_FUNCTION_KBD_BACKLIGHT;
+			color = <LED_COLOR_ID_WHITE>;
+			max-brightness = <255>;
+			default-state = "keep";
+		};
+	};
+};
+
+&fpwm1 {
+	status = "okay";
+};
arch/arm64/boot/dts/apple/t8103.dtsi +9 -0
index 51a63b29d404..ccdb26ef6b22 100644
@@ -191,6 +191,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>;
Signature · 1 line
2.37.3
#12 lore raw

PATCH v2 4/4 MAINTAINERS: Add entries for Apple PWM driver

In reply to Sasha Finkelstein

Add the MAINTAINERS entries for the driver

---
 MAINTAINERS | 2 ++
 1 file changed, 2 insertions(+)
MAINTAINERS +2 -0
index 379945f82a64..414812941714 100644
@@ -1908,6 +1908,7 @@ F:	Documentation/devicetree/bindings/nvmem/apple,efuses.yaml
 F:	Documentation/devicetree/bindings/pci/apple,pcie.yaml
 F:	Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
 F:	Documentation/devicetree/bindings/power/apple*
+F:	Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
 F:	Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
 F:	arch/arm64/boot/dts/apple/
 F:	drivers/clk/clk-apple-nco.c
@@ -1921,6 +1922,7 @@ F:	drivers/mailbox/apple-mailbox.c
 F:	drivers/nvme/host/apple.c
 F:	drivers/nvmem/apple-efuses.c
 F:	drivers/pinctrl/pinctrl-apple-gpio.c
+F:	drivers/pwm/pwm-apple.c
 F:	drivers/soc/apple/*
 F:	drivers/watchdog/apple_wdt.c
 F:	include/dt-bindings/interrupt-controller/apple-aic.h
Signature · 1 line
2.37.3
Acked-by on the v2 series
#13 lore raw
In reply to Sasha Finkelstein

Hi,

Quoted 16 lines · Sasha Finkelstein

Hi,

This is the v2 of the patch series to add PWM and keyboard backlight drivers for ARM macs. The changes from v1 address the review comments on that patch set.

v1: https://www.spinics.net/lists/linux-pwm/msg19500.html

Best Regards.

Sasha Finkelstein (4):
dt-bindings: pwm: Add Apple PWM controller
pwm: Add Apple PWM controller
arm64: dts: apple: t8103: Add PWM controller
MAINTAINERS: Add entries for Apple PWM driver

Quoted 14 lines
 .../bindings/pwm/apple,s5l-fpwm.yaml          |  51 +++++++
 MAINTAINERS                                   |   2 +
 arch/arm64/boot/dts/apple/t8103-j293.dts      |  20 +++
 arch/arm64/boot/dts/apple/t8103-j313.dts      |  20 +++
 arch/arm64/boot/dts/apple/t8103.dtsi          |   9 ++
 drivers/pwm/Kconfig                           |  12 ++
 drivers/pwm/Makefile                          |   1 +
 drivers/pwm/pwm-apple.c                       | 127 ++++++++++++++++++
 8 files changed, 242 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml
 create mode 100644 drivers/pwm/pwm-apple.c
Signature · 1 line
2.37.3

this looks good to me, entire series:

Best,

Sven