From: Christian Lamparter Date: Sat, 29 Aug 2020 20:53:18 +0000 (+0200) Subject: bcm53xx: enable PWM for bcm53xx X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=c6d9a2ac59d1cbcdf69b8ba59987e6dff5ec3115;p=openwrt%2Fstaging%2Fthess.git bcm53xx: enable PWM for bcm53xx 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 --- diff --git a/target/linux/bcm53xx/Makefile b/target/linux/bcm53xx/Makefile index 35f8513801..f980f8a8fb 100644 --- a/target/linux/bcm53xx/Makefile +++ b/target/linux/bcm53xx/Makefile @@ -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 diff --git a/target/linux/bcm53xx/config-5.4 b/target/linux/bcm53xx/config-5.4 index eacfcb620e..8c7cdf45d5 100644 --- a/target/linux/bcm53xx/config-5.4 +++ b/target/linux/bcm53xx/config-5.4 @@ -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 index 0000000000..335378656c --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/033-v5.10-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch @@ -0,0 +1,48 @@ +From 0ea4b29d149586667d96767f1fc8e57ee942c1b0 Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +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 +Acked-by: Scott Branden +Signed-off-by: Florian Fainelli + +--- 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";