From: Rafał Miłecki Date: Thu, 28 Jul 2016 10:43:42 +0000 (+0200) Subject: bcm53xx: backport DTS patches for USB 2.0 and Tenda AC9 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2552e9319ef761176ebda66c172d38e62e4fcc58;p=openwrt%2Fstaging%2Frobimarko.git bcm53xx: backport DTS patches for USB 2.0 and Tenda AC9 Signed-off-by: Rafał Miłecki --- diff --git a/target/linux/bcm53xx/patches-4.4/042-ARM-BCM5301X-Specify-PHY-of-USB-2.0-in-DT.patch b/target/linux/bcm53xx/patches-4.4/042-ARM-BCM5301X-Specify-PHY-of-USB-2.0-in-DT.patch new file mode 100644 index 0000000000..e95a513c78 --- /dev/null +++ b/target/linux/bcm53xx/patches-4.4/042-ARM-BCM5301X-Specify-PHY-of-USB-2.0-in-DT.patch @@ -0,0 +1,46 @@ +From 773880f77ae0a6782dd3da176bd25d85ff3a8c7f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Wed, 1 Jun 2016 22:07:07 +0200 +Subject: [PATCH] ARM: BCM5301X: Specify PHY of USB 2.0 in DT +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Driver for Northstar USB 2.0 PHY was added in 4.7-rc1 by: +commit d3feb4067335 ("phy: bcm-ns-usb2: new driver for USB 2.0 PHY on +Northstar"). +It should be used to let EHCI platform driver init PHY. + +Signed-off-by: Rafał Miłecki +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/bcm5301x.dtsi | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/arch/arm/boot/dts/bcm5301x.dtsi ++++ b/arch/arm/boot/dts/bcm5301x.dtsi +@@ -140,6 +140,15 @@ + }; + }; + ++ usb2_phy: usb2-phy { ++ compatible = "brcm,ns-usb2-phy"; ++ reg = <0x1800c000 0x1000>; ++ reg-names = "dmu"; ++ #phy-cells = <0>; ++ clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>; ++ clock-names = "phy-ref-clk"; ++ }; ++ + axi@18000000 { + compatible = "brcm,bus-axi"; + reg = <0x18000000 0x1000>; +@@ -232,6 +241,8 @@ + + #address-cells = <1>; + #size-cells = <1>; ++ ++ phys = <&usb2_phy>; + }; + + usb3: usb3@23000 { diff --git a/target/linux/bcm53xx/patches-4.4/130-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch b/target/linux/bcm53xx/patches-4.4/130-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch new file mode 100644 index 0000000000..9395b90920 --- /dev/null +++ b/target/linux/bcm53xx/patches-4.4/130-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch @@ -0,0 +1,273 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Subject: [PATCH] ARM: BCM5301X: Add basic dts for BCM53573 based Tenda AC9 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +BCM53573 seems to be low priced alternative for standard Northstar +chipsets. It uses single core Cortex-A7, doesn't have SDU or local (TWD) +timer. It was also stripped out of independent SPI controller and 2 +GMACs. + +DTS for Tenda AC9 isn't completed yet. It misses e.g. switch entry (we +still need some bgmac/b53 fixes) and probably some clocks. It adds +support for basic features however and can be improved later. + +Signed-off-by: Rafał Miłecki +--- + MAINTAINERS | 2 + + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 74 ++++++++++++++++ + arch/arm/boot/dts/bcm53573.dtsi | 147 +++++++++++++++++++++++++++++++ + 4 files changed, 224 insertions(+) + create mode 100644 arch/arm/boot/dts/bcm47189-tenda-ac9.dts + create mode 100644 arch/arm/boot/dts/bcm53573.dtsi + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -2337,6 +2337,8 @@ S: Maintained + F: arch/arm/mach-bcm/bcm_5301x.c + F: arch/arm/boot/dts/bcm5301x.dtsi + F: arch/arm/boot/dts/bcm470* ++F: arch/arm/boot/dts/bcm53573* ++F: arch/arm/boot/dts/bcm47189* + + BROADCOM BCM63XX ARM ARCHITECTURE + M: Florian Fainelli +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ + bcm4709-netgear-r7000.dtb \ + bcm4709-netgear-r8000.dtb \ + bcm47094-dlink-dir-885l.dtb \ ++ bcm47189-tenda-ac9.dtb \ + bcm94708.dtb \ + bcm94709.dtb \ + bcm953012er.dtb \ +--- /dev/null ++++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (C) 2016 Rafał Miłecki ++ * ++ * Licensed under the ISC license. ++ */ ++ ++/dts-v1/; ++ ++#include "bcm53573.dtsi" ++ ++/ { ++ compatible = "tenda,ac9", "brcm,bcm47189", "brcm,bcm53573"; ++ model = "Tenda AC9"; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200 earlycon"; ++ }; ++ ++ memory { ++ reg = <0x00000000 0x08000000>; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ usb { ++ label = "bcm53xx:blue:usb"; ++ gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "default-off"; ++ }; ++ ++ wps { ++ label = "bcm53xx:blue:wps"; ++ gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "default-off"; ++ }; ++ ++ 5ghz { ++ label = "bcm53xx:blue:5ghz"; ++ gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "default-off"; ++ }; ++ ++ system { ++ label = "bcm53xx:blue:system"; ++ gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "timer"; ++ }; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ rfkill { ++ label = "WiFi"; ++ linux,code = ; ++ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; ++ }; ++ ++ restart { ++ label = "Reset"; ++ linux,code = ; ++ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wps { ++ label = "WPS"; ++ linux,code = ; ++ gpios = <&chipcommon 9 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; +--- /dev/null ++++ b/arch/arm/boot/dts/bcm53573.dtsi +@@ -0,0 +1,147 @@ ++/* ++ * Copyright (C) 2016 Rafał Miłecki ++ * ++ * Licensed under the ISC license. ++ */ ++ ++#include ++#include ++#include ++#include ++#include "skeleton.dtsi" ++ ++/ { ++ interrupt-parent = <&gic>; ++ ++ chosen { ++ stdout-path = &uart0; ++ }; ++ ++ cpus { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ cpu@0 { ++ device_type = "cpu"; ++ compatible = "arm,cortex-a7"; ++ reg = <0x0>; ++ }; ++ }; ++ ++ mpcore { ++ compatible = "simple-bus"; ++ ranges = <0x00000000 0x18310000 0x00008000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ gic: interrupt-controller@1000 { ++ compatible = "arm,cortex-a7-gic"; ++ #interrupt-cells = <3>; ++ #address-cells = <0>; ++ interrupt-controller; ++ reg = <0x1000 0x1000>, ++ <0x2000 0x0100>; ++ }; ++ }; ++ ++ clocks { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ alp: oscillator { ++ #clock-cells = <0>; ++ compatible = "fixed-clock"; ++ clock-frequency = <40000000>; ++ }; ++ }; ++ ++ axi@18000000 { ++ compatible = "brcm,bus-axi"; ++ reg = <0x18000000 0x1000>; ++ ranges = <0x00000000 0x18000000 0x00100000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ #interrupt-cells = <1>; ++ interrupt-map-mask = <0x000fffff 0xffff>; ++ interrupt-map = ++ /* ChipCommon */ ++ <0x00000000 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, ++ ++ /* IEEE 802.11 0 */ ++ <0x00001000 0 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, ++ ++ /* PCIe Controller 0 */ ++ <0x00002000 0 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, ++ <0x00002000 1 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, ++ <0x00002000 2 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, ++ <0x00002000 3 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, ++ <0x00002000 4 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, ++ <0x00002000 5 &gic GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, ++ ++ /* USB 2.0 Controller */ ++ <0x00004000 0 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, ++ ++ /* Ethernet Controller 0 */ ++ <0x00005000 0 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, ++ ++ /* IEEE 802.11 1 */ ++ <0x0000a000 0 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, ++ ++ /* Ethernet Controller 1 */ ++ <0x0000b000 0 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; ++ ++ chipcommon: chipcommon@0 { ++ compatible = "simple-bus"; ++ reg = <0x00000000 0x1000>; ++ ranges; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ gpio-controller; ++ #gpio-cells = <2>; ++ ++ uart0: serial@0300 { ++ compatible = "ns16550a"; ++ reg = <0x0300 0x100>; ++ interrupt-parent = <&gic>; ++ interrupts = ; ++ clocks = <&alp>; ++ status = "okay"; ++ }; ++ }; ++ ++ usb2: usb2@4000 { ++ reg = <0x4000 0x1000>; ++ ranges; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ ehci: ehci@4000 { ++ compatible = "generic-ehci"; ++ reg = <0x4000 0x1000>; ++ interrupt-parent = <&gic>; ++ interrupts = ; ++ }; ++ ++ ohci: ohci@d000 { ++ #usb-cells = <0>; ++ ++ compatible = "generic-ohci"; ++ reg = <0xd000 0x1000>; ++ interrupt-parent = <&gic>; ++ interrupts = ; ++ }; ++ }; ++ ++ gmac0: ethernet@5000 { ++ reg = <0x5000 0x1000>; ++ }; ++ ++ gmac1: ethernet@b000 { ++ reg = <0xb000 0x1000>; ++ }; ++ }; ++}; diff --git a/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch b/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch index c67d562f0c..6dcdf6caaf 100644 --- a/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch +++ b/target/linux/bcm53xx/patches-4.4/301-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch @@ -16,7 +16,7 @@ Signed-off-by: Rafał Miłecki + bcm4709-netgear-r7900.dtb \ bcm4709-netgear-r8000.dtb \ bcm47094-dlink-dir-885l.dtb \ - bcm94708.dtb \ + bcm47189-tenda-ac9.dtb \ --- /dev/null +++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts @@ -0,0 +1,41 @@ diff --git a/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch b/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch index 8db50e0116..addbe36698 100644 --- a/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch +++ b/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch @@ -18,9 +18,9 @@ Signed-off-by: Rafał Miłecki bcm4709-netgear-r8000.dtb \ bcm47094-dlink-dir-885l.dtb \ + bcm47094-netgear-r8500.dtb \ + bcm47189-tenda-ac9.dtb \ bcm94708.dtb \ bcm94709.dtb \ - bcm953012er.dtb \ --- /dev/null +++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts @@ -0,0 +1,107 @@