PWM and keyboard backlight driver for ARM Macs
Subsystems (3)
v5 cover PWM and keyboard backlight driver for ARM Macs
Hi,
This is the v5 of the patch series to add PWM and keyboard backlight driver for ARM macs.
Changes in v1:
Addressing the review comments.
Changes in v2:
Added the reviewed-by and acked-by tags.
Addressing a review comment.
Changes in v3 and v4:
Addressing the review comments.
v1: https://www.spinics.net/lists/linux-pwm/msg19500.html
v2: https://www.spinics.net/lists/linux-pwm/msg19562.html
v3: https://www.spinics.net/lists/linux-pwm/msg19901.html
v4: https://www.spinics.net/lists/linux-pwm/msg20093.html
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 | 19 +++ arch/arm64/boot/dts/apple/t8103-j313.dts | 19 +++ arch/arm64/boot/dts/apple/t8103.dtsi | 9 + drivers/pwm/Kconfig | 12 ++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-apple.c | 154 ++++++++++++++++++ 8 files changed, 267 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.1 (Apple Git-137.1)
PATCH v5 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
@@ -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.1 (Apple Git-137.1)
PATCH v5 2/4 pwm: Add Apple PWM controller
In reply to Sasha FinkelsteinAdds the Apple PWM controller driver.
--- drivers/pwm/Kconfig | 12 ++++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-apple.c | 154 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+) create mode 100644 drivers/pwm/pwm-apple.c
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 +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 file +154 -0
154 lines not on this page · raw message
Signature · 1 line
2.37.1 (Apple Git-137.1)
PATCH v5 3/4 arm64: dts: apple: t8103: Add PWM controller
In reply to Sasha FinkelsteinAdds PWM controller and keyboard backlight bindings for M1 MacBooks
--- arch/arm64/boot/dts/apple/t8103-j293.dts | 19 +++++++++++++++++++ arch/arm64/boot/dts/apple/t8103-j313.dts | 19 +++++++++++++++++++ arch/arm64/boot/dts/apple/t8103.dtsi | 9 +++++++++ 3 files changed, 47 insertions(+)
arch/arm64/boot/dts/apple/t8103-j293.dts +19 -0
@@ -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,21 @@ &i2c2 { &i2c4 { status = "okay"; }; + +/ { + 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"; + }; + }; +}; + +&fpwm1 { + status = "okay"; +};
arch/arm64/boot/dts/apple/t8103-j313.dts +19 -0
@@ -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,21 @@ &pcie0_dart_2 { /delete-node/ &port01; /delete-node/ &port02; + +/ { + 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"; + }; + }; +}; + +&fpwm1 { + status = "okay"; +};
arch/arm64/boot/dts/apple/t8103.dtsi +9 -0
@@ -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.1 (Apple Git-137.1)
Re: [PATCH v5 3/4] arm64: dts: apple: t8103: Add PWM controller
Quoted 30 lines · Sasha Finkelstein
Adds PWM controller and keyboard backlight bindings for M1 MacBooks
Signed-off-by Sasha Finkelstein <[email protected]>Acked-by Sven Peter <[email protected]>--- arch/arm64/boot/dts/apple/t8103-j293.dts | 19 +++++++++++++++++++ arch/arm64/boot/dts/apple/t8103-j313.dts | 19 +++++++++++++++++++ arch/arm64/boot/dts/apple/t8103.dtsi | 9 +++++++++ 3 files changed, 47 insertions(+)arch/arm64/boot/dts/apple/t8103-j293.dts +5
-0@@ -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,21 @@ &i2c2 { &i2c4 { status = "okay"; }; + +/ { + led-controller { + compatible = "pwm-leds";
arch/arm64/boot/dts/apple/t8103-j293.dts &i2c2 { · line 60
Quoted 10 lines
arch/arm64/boot/dts/apple/t8103-j293.dts +10
-0+ 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"; + }; + }; +};
{ goes to the top, not in the middle of DTS. Don't add stuff at the end of DTS.
Best regards,
Krzysztof
PATCH v5 4/4 MAINTAINERS: Add entries for Apple PWM driver
In reply to Sasha FinkelsteinAdd the MAINTAINERS entries for the driver
--- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+)
MAINTAINERS +2 -0
@@ -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/pwm-apple.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.1 (Apple Git-137.1)