diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2017-02-06 10:06:44 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2017-02-06 10:08:39 +0100 |
commit | 2252627b0eff08f46f08c705ed3bf59ac335afae (patch) | |
tree | cfb052adab8bb44d53626a2cf8c598004bd465ac /target/linux/bcm53xx/patches-4.9/030-0002-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch | |
parent | 75d48d80c7b6012bcc2efbc3d07a7be5aaaafcc6 (diff) | |
download | upstream-2252627b0eff08f46f08c705ed3bf59ac335afae.tar.gz upstream-2252627b0eff08f46f08c705ed3bf59ac335afae.tar.bz2 upstream-2252627b0eff08f46f08c705ed3bf59ac335afae.zip |
bcm53xx: add Linux 4.9 patches
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/bcm53xx/patches-4.9/030-0002-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-4.9/030-0002-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-4.9/030-0002-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch b/target/linux/bcm53xx/patches-4.9/030-0002-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch new file mode 100644 index 0000000000..a1c462dfc2 --- /dev/null +++ b/target/linux/bcm53xx/patches-4.9/030-0002-ARM-BCM5301X-Add-basic-dts-for-BCM53573-based-Tenda-.patch @@ -0,0 +1,264 @@ +From 21c29be6a69d3ef4f5a2e16272deb4845f8208ad Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> +Date: Tue, 23 Aug 2016 07:37:43 +0200 +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 Northstar chipsts. It +uses single core Cortex-A7 and 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 b53 fixes) and probably some clocks. It adds support for +basic features however and can be improved later. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/Makefile | 2 + + arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 74 ++++++++++++++++ + arch/arm/boot/dts/bcm53573.dtsi | 147 +++++++++++++++++++++++++++++++ + 3 files changed, 223 insertions(+) + create mode 100644 arch/arm/boot/dts/bcm47189-tenda-ac9.dts + create mode 100644 arch/arm/boot/dts/bcm53573.dtsi + +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -82,6 +82,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ + bcm94709.dtb \ + bcm953012er.dtb \ + bcm953012k.dtb ++dtb-$(CONFIG_ARCH_BCM_53573) += \ ++ bcm47189-tenda-ac9.dtb + dtb-$(CONFIG_ARCH_BCM_63XX) += \ + bcm963138dvt.dtb + dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \ +--- /dev/null ++++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (C) 2016 Rafał Miłecki <rafal@milecki.pl> ++ * ++ * 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 = <KEY_RFKILL>; ++ gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; ++ }; ++ ++ restart { ++ label = "Reset"; ++ linux,code = <KEY_RESTART>; ++ gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wps { ++ label = "WPS"; ++ linux,code = <KEY_WPS_BUTTON>; ++ 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 <rafal@milecki.pl> ++ * ++ * Licensed under the ISC license. ++ */ ++ ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/interrupt-controller/irq.h> ++#include <dt-bindings/interrupt-controller/arm-gic.h> ++#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 = <GIC_PPI 16 IRQ_TYPE_LEVEL_HIGH>; ++ 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 = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ ++ ohci: ohci@d000 { ++ #usb-cells = <0>; ++ ++ compatible = "generic-ohci"; ++ reg = <0xd000 0x1000>; ++ interrupt-parent = <&gic>; ++ interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ }; ++ ++ gmac0: ethernet@5000 { ++ reg = <0x5000 0x1000>; ++ }; ++ ++ gmac1: ethernet@b000 { ++ reg = <0xb000 0x1000>; ++ }; ++ }; ++}; |