bcm53xx: enable PWM for bcm53xx
authorChristian Lamparter <chunkeey@gmail.com>
Sat, 29 Aug 2020 20:53:18 +0000 (22:53 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 25 Sep 2020 17:32:33 +0000 (19:32 +0200)
The Meraki MR32 (BCM53016A1) uses the pwm to drive the
tricolor LED. The driver has been available in upstream
for a long time. Only the Device-Tree definition was
missing, but it has been queued recently.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/bcm53xx/Makefile
target/linux/bcm53xx/config-5.4
target/linux/bcm53xx/patches-5.4/033-v5.10-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch [new file with mode: 0644]

index 35f8513801ed2a13ae2b410d64c77d4581caff6c..f980f8a8fbf43e8000e49227b85d098d8c9b7c30 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 ARCH:=arm
 BOARD:=bcm53xx
 BOARDNAME:=Broadcom BCM47xx/53xx (ARM)
-FEATURES:=squashfs nand usb pci pcie gpio
+FEATURES:=squashfs nand usb pci pcie gpio pwm
 CPU_TYPE:=cortex-a9
 SUBTARGETS:=generic
 
index eacfcb620eff90e1895e2a37db6e1e0ae751ccd3..8c7cdf45d5aa8a2212550a47923fbb6d4b4627da 100644 (file)
@@ -308,6 +308,9 @@ CONFIG_PINCTRL=y
 # CONFIG_PINCTRL_IPROC_GPIO is not set
 CONFIG_PINCTRL_NS=y
 # CONFIG_PINCTRL_NS2_MUX is not set
+CONFIG_PWM=y
+CONFIG_PWM_BCM_IPROC=y
+CONFIG_PWM_SYSFS=y
 CONFIG_RATIONAL=y
 CONFIG_RCU_NEED_SEGCBLIST=y
 CONFIG_RCU_STALL_COMMON=y
diff --git a/target/linux/bcm53xx/patches-5.4/033-v5.10-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch b/target/linux/bcm53xx/patches-5.4/033-v5.10-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch
new file mode 100644 (file)
index 0000000..3353786
--- /dev/null
@@ -0,0 +1,48 @@
+From 0ea4b29d149586667d96767f1fc8e57ee942c1b0 Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@gmail.com>
+Date: Sat, 22 Aug 2020 18:19:19 +0200
+Subject: [PATCH] ARM: dts: BCM5301X: Specify PWM in the DT
+
+The BCM53016 in the Meraki MR32 uses the on-chip PWM
+controller to drive a tri-color RGB LED. Since I plan
+to use the PWM, I made a label for the pwm's pinmux
+node. This way, it can be easily referenced.... And
+Also included a label for the i2c since I'm going to
+need it in the future too.
+
+Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
+Acked-by: Scott Branden <scott.branden@broadcom.com>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -350,6 +350,14 @@
+               };
+       };
++      pwm: pwm@18002000 {
++              compatible = "brcm,iproc-pwm";
++              reg = <0x18002000 0x28>;
++              clocks = <&osc>;
++              #pwm-cells = <3>;
++              status = "disabled";
++      };
++
+       mdio: mdio@18003000 {
+               compatible = "brcm,iproc-mdio";
+               reg = <0x18003000 0x8>;
+@@ -417,12 +425,12 @@
+                                       function = "spi";
+                               };
+-                              i2c {
++                              pinmux_i2c: i2c {
+                                       groups = "i2c_grp";
+                                       function = "i2c";
+                               };
+-                              pwm {
++                              pinmux_pwm: pwm {
+                                       groups = "pwm0_grp", "pwm1_grp",
+                                                "pwm2_grp", "pwm3_grp";
+                                       function = "pwm";