PWM and keyboard backlight driver for ARM Macs
Subsystems (3)
v7 cover PWM and keyboard backlight driver for ARM Macs
Hi,
This is the resend of the v7 of the patch series to add PWM and keyboard backlight driver for ARM macs. No significant changes this time.
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.
Changes in v5:
Added t600x device tree changes
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
v5: https://www.spinics.net/lists/linux-pwm/msg20150.html
v6: https://www.spinics.net/lists/linux-pwm/msg20190.html
Sasha Finkelstein (5):
dt-bindings: pwm: Add Apple PWM controller
pwm: Add Apple PWM controller
arm64: dts: apple: t8103: Add PWM controller
arm64: dts: apple: t600x: Add PWM controller
MAINTAINERS: Add entries for Apple PWM driver
.../bindings/pwm/apple,s5l-fpwm.yaml | 51 ++++++ MAINTAINERS | 2 + arch/arm64/boot/dts/apple/t600x-die0.dtsi | 9 + .../arm64/boot/dts/apple/t600x-j314-j316.dtsi | 18 ++ 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 + drivers/pwm/Kconfig | 12 ++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-apple.c | 159 ++++++++++++++++++ 10 files changed, 295 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 v7 1/5 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 v7 2/5 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 | 159 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 172 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 +159 -0
159 lines not on this page · raw message
Signature · 1 line
2.37.1 (Apple Git-137.1)
PATCH v7 3/5 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 | 17 +++++++++++++++++ arch/arm64/boot/dts/apple/t8103-j313.dts | 17 +++++++++++++++++ arch/arm64/boot/dts/apple/t8103.dtsi | 9 +++++++++ 3 files changed, 43 insertions(+)
arch/arm64/boot/dts/apple/t8103-j293.dts +17 -0
@@ -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"; +};
arch/arm64/boot/dts/apple/t8103-j313.dts +17 -0
@@ -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"; +};
arch/arm64/boot/dts/apple/t8103.dtsi +9 -0
@@ -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>;
Signature · 1 line
2.37.1 (Apple Git-137.1)
PATCH v7 4/5 arm64: dts: apple: t600x: Add PWM controller
In reply to Sasha FinkelsteinFrom: Sasha Finkelstein <[email protected]>
Adds PWM controller and keyboard backlight bindings for M1 Pro/Max MacBook Pros
--- arch/arm64/boot/dts/apple/t600x-die0.dtsi | 9 +++++++++ arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+)
arch/arm64/boot/dts/apple/t600x-die0.dtsi +9 -0
@@ -71,6 +71,15 @@ sio_dart_1: iommu@39b008000 { power-domains = <&ps_sio_cpu>; }; + fpwm0: pwm@39b030000 { + compatible = "apple,t6000-fpwm", "apple,s5l-fpwm"; + reg = <0x3 0x9b030000 0x0 0x4000>; + power-domains = <&ps_fpwm0>; + clocks = <&clkref>; + #pwm-cells = <2>; + status = "disabled"; + }; + i2c0: i2c@39b040000 { compatible = "apple,t6000-i2c", "apple,i2c"; reg = <0x3 0x9b040000 0x0 0x4000>;
arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi +18 -0
@@ -9,6 +9,8 @@ * Copyright The Asahi Linux Contributors */ +#include <dt-bindings/leds/common.h> + / { aliases { serial0 = &serial0;
@@ -34,6 +36,18 @@ memory@10000000000 { device_type = "memory"; reg = <0x100 0 0x2 0>; /* To be filled by loader */ }; + + led-controller { + compatible = "pwm-leds"; + led-0 { + pwms = <&fpwm0 0 40000>; + label = "kbd_backlight"; + function = LED_FUNCTION_KBD_BACKLIGHT; + color = <LED_COLOR_ID_WHITE>; + max-brightness = <255>; + default-state = "keep"; + }; + }; }; &serial0 {
@@ -110,5 +124,9 @@ &pcie0_dart_3 { status = "disabled"; }; +&fpwm0 { + status = "okay"; +}; + /delete-node/ &port02; /delete-node/ &port03;
Signature · 1 line
2.37.1 (Apple Git-137.1)
PATCH v7 5/5 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
@@ -1970,6 +1970,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/bluetooth/hci_bcm4377.c
@@ -1985,6 +1986,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)