This pull request contains Broadcom ARM64-based SoCs Device Tree changes

for 5.13, please pull the following:
 
 - Rafal continues to add support for the 4908 SoCs and describes the USB
   PHY, firmware flash partitions and Ethernet switch and Ethernet
   controller. He also adds support for the TP-Link Archer C2300 V1
   router and upates the Netgear R8000P and Asus GT-AC5300 routers network
   ports description.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmBiINoACgkQh9CWnEQH
 BwToUA//WssP2pUzjsNev3kdTiOix/Vs/bkKJ9VlGRkmKLsYQJKtIjM1h7GrxrBS
 d4cUIjgt0sBicLnH/+vXWWzWnle51ZnVVjjPxywxT2SEqp/69elOqH/CnELQF6dD
 9nvZgH5VnWi+hgE/yBgfkY5uHjzUnXp8unWkWagHncgaEndPJy7DdHRru50fy0CN
 bqHbJzHmeJfv/TVdfCAdOFTv1MGi9lcmhIlMerPtxoaf1aX2QZJ99Wc4BoTEfmK6
 DP+LLsefewuWeDm/SafZdK3pLg3QyUzMrtrNa7KLNUzNhH69gtUWfjY1tpJn+vUF
 azD85U+cP70I1+DdVrZ+grUW2JgE1DmMdj/VtUOR80mjrEZDn7fbMldR6X049fjr
 CNanRMlDuCFe3YZbqqblrfVgQB/iEgI6YHoYZJSbzJNccM6dYv1Txv0jJUtUMgAs
 TZ7QUFZEJ6BPL6JYb/fIxLvp0gUUihO6qESzxtUFiBnxDB57hL9lZshcsOlRoKTa
 eAOwNd0F8VCrIc89po3dDTZsr94qtmHpHzttbm7Hr2xwsF3hCsCODn3J9GSdk7OP
 lI004I0cr6vYwJI+CYgEEf4wfDXCE7JvWIB0uvk307gUbnxR/wlI1YWV/+uVDAHu
 TRgE7clsR6ZtWxQIMulTSmitm9M5EtZ81E0a1iAnO5wUKmfMDtg=
 =MdDK
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-5.13/devicetre-arm64' of https://github.com/Broadcom/stblinux into arm/dt

This pull request contains Broadcom ARM64-based SoCs Device Tree changes
for 5.13, please pull the following:

- Rafal continues to add support for the 4908 SoCs and describes the USB
  PHY, firmware flash partitions and Ethernet switch and Ethernet
  controller. He also adds support for the TP-Link Archer C2300 V1
  router and upates the Netgear R8000P and Asus GT-AC5300 routers network
  ports description.

* tag 'arm-soc/for-5.13/devicetre-arm64' of https://github.com/Broadcom/stblinux:
  arm64: dts: broadcom: bcm4908: add Ethernet MAC addr
  arm64: dts: broadcom: bcm4908: add Ethernet TX irq
  arm64: dts: broadcom: bcm4908: set Asus GT-AC5300 port 7 PHY mode
  arm64: dts: broadcom: bcm4908: add TP-Link Archer C2300 V1
  dt-bindings: arm: bcm: document TP-Link Archer C2300 binding
  arm64: dts: broadcom: bcm4908: fix switch parent node name
  arm64: dts: broadcom: bcm4908: describe firmware partitions
  arm64: dts: broadcom: bcm4908: add remaining Netgear R8000P LEDs
  arm64: dts: broadcom: bcm4908: describe Netgear R8000P switch
  arm64: dts: broadcom: bcm4908: describe Ethernet controller
  arm64: dts: broadcom: bcm4908: describe USB PHY

Link: https://lore.kernel.org/r/20210330184006.1451315-2-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2021-04-01 21:35:38 +02:00
commit 3b73ea6c80
6 changed files with 375 additions and 7 deletions

View file

@ -21,6 +21,7 @@ properties:
items:
- enum:
- netgear,r8000p
- tplink,archer-c2300-v1
- const: brcm,bcm4906
- const: brcm,bcm4908

View file

@ -1,3 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb

View file

@ -18,11 +18,106 @@ memory@0 {
leds {
compatible = "gpio-leds";
wps {
led-power-white {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
};
led-power-amber {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_AMBER>;
gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
};
led-wps {
function = LED_FUNCTION_WPS;
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
};
led-2ghz {
function = "2ghz";
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
};
led-5ghz-1 {
function = "5ghz-1";
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
};
led-5ghz-2 {
function = "5ghz-2";
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
};
led-usb2 {
function = "usb2";
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
};
led-usb3 {
function = "usb3";
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
};
led-wifi {
function = "wifi";
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
};
};
};
&enet {
nvmem-cells = <&base_mac_addr>;
nvmem-cell-names = "mac-address";
};
&usb_phy {
brcm,ioc = <1>;
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
&xhci {
status = "okay";
};
&ports {
port@0 {
label = "lan4";
};
port@1 {
label = "lan3";
};
port@2 {
label = "lan2";
};
port@3 {
label = "lan1";
};
port@7 {
reg = <7>;
phy-mode = "internal";
phy-handle = <&phy12>;
label = "wan";
};
};
@ -40,11 +135,21 @@ partitions {
#size-cells = <1>;
partition@0 {
compatible = "nvmem-cells";
label = "cferom";
reg = <0x0 0x100000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x0 0x100000>;
base_mac_addr: mac@106a0 {
reg = <0x106a0 0x6>;
};
};
partition@100000 {
compatible = "brcm,bcm4908-firmware";
label = "firmware";
reg = <0x100000 0x4400000>;
};

View file

@ -0,0 +1,182 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include "bcm4906.dtsi"
/ {
compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908";
model = "TP-Link Archer C2300 V1";
memory@0 {
device_type = "memory";
reg = <0x00 0x00 0x00 0x20000000>;
};
leds {
compatible = "gpio-leds";
led-power {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
};
led-2ghz {
function = "2ghz";
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
};
led-5ghz {
function = "5ghz";
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
};
led-wan-amber {
function = LED_FUNCTION_WAN;
color = <LED_COLOR_ID_AMBER>;
gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
};
led-wan-blue {
function = LED_FUNCTION_WAN;
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
};
led-lan {
function = LED_FUNCTION_LAN;
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
};
led-wps {
function = LED_FUNCTION_WPS;
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
};
led-usb2 {
function = "usb2";
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
};
led-usb3 {
function = "usbd3";
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
};
led-brightness {
function = LED_FUNCTION_BACKLIGHT;
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
};
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <100>;
brightness {
label = "LEDs";
linux,code = <KEY_BRIGHTNESS_ZERO>;
gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
};
wps {
label = "WPS";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
};
wifi {
label = "WiFi";
linux,code = <KEY_RFKILL>;
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
};
restart {
label = "Reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
};
};
};
&usb_phy {
brcm,ioc = <1>;
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
&xhci {
status = "okay";
};
&ports {
port@0 {
label = "lan4";
};
port@1 {
label = "lan3";
};
port@2 {
label = "lan2";
};
port@3 {
label = "lan1";
};
port@7 {
reg = <7>;
phy-mode = "internal";
phy-handle = <&phy12>;
label = "wan";
};
};
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-on-flash-bbt;
#address-cells = <1>;
#size-cells = <0>;
partitions {
compatible = "brcm,bcm4908-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "cferom";
reg = <0x0 0x100000>;
};
partition@100000 {
compatible = "brcm,bcm4908-firmware";
reg = <0x100000 0x3900000>;
};
partition@5800000 {
compatible = "brcm,bcm4908-firmware";
reg = <0x3a00000 0x3900000>;
};
};
};

View file

@ -44,6 +44,28 @@ brightness {
};
};
&enet {
nvmem-cells = <&base_mac_addr>;
nvmem-cell-names = "mac-address";
};
&usb_phy {
brcm,ioc = <1>;
status = "okay";
};
&ehci {
status = "okay";
};
&ohci {
status = "okay";
};
&xhci {
status = "okay";
};
&ports {
port@0 {
label = "lan2";
@ -65,6 +87,7 @@ port@3 {
port@7 {
label = "sw";
reg = <7>;
phy-mode = "rgmii";
fixed-link {
speed = <1000>;
@ -105,13 +128,32 @@ &nandcs {
#size-cells = <0>;
partitions {
compatible = "fixed-partitions";
compatible = "brcm,bcm4908-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
compatible = "nvmem-cells";
label = "cferom";
reg = <0x0 0x100000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x0 0x100000>;
base_mac_addr: mac@106a0 {
reg = <0x106a0 0x6>;
};
};
partition@100000 {
compatible = "brcm,bcm4908-firmware";
reg = <0x100000 0x5700000>;
};
partition@5800000 {
compatible = "brcm,bcm4908-firmware";
reg = <0x5800000 0x5700000>;
};
};
};

View file

@ -2,6 +2,8 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/soc/bcm-pmb.h>
/dts-v1/;
@ -110,28 +112,52 @@ soc {
#size-cells = <1>;
ranges = <0x00 0x00 0x80000000 0x281000>;
usb@c300 {
enet: ethernet@2000 {
compatible = "brcm,bcm4908-enet";
reg = <0x2000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "rx", "tx";
};
usb_phy: usb-phy@c200 {
compatible = "brcm,bcm4908-usb-phy";
reg = <0xc200 0x100>;
reg-names = "ctrl";
power-domains = <&pmb BCM_PMB_HOST_USB>;
dr_mode = "host";
brcm,has-xhci;
brcm,has-eohci;
#phy-cells = <1>;
status = "disabled";
};
ehci: usb@c300 {
compatible = "generic-ehci";
reg = <0xc300 0x100>;
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb_phy PHY_TYPE_USB2>;
status = "disabled";
};
usb@c400 {
ohci: usb@c400 {
compatible = "generic-ohci";
reg = <0xc400 0x100>;
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb_phy PHY_TYPE_USB2>;
status = "disabled";
};
usb@d000 {
xhci: usb@d000 {
compatible = "generic-xhci";
reg = <0xd000 0x8c8>;
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
phys = <&usb_phy PHY_TYPE_USB3>;
status = "disabled";
};
ethernet-switch@80000 {
bus@80000 {
compatible = "simple-bus";
#size-cells = <1>;
#address-cells = <1>;
@ -182,6 +208,17 @@ port@3 {
phy-mode = "internal";
phy-handle = <&phy11>;
};
port@8 {
reg = <8>;
phy-mode = "internal";
ethernet = <&enet>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
};
};
@ -222,7 +259,7 @@ procmon: syscon@280000 {
#address-cells = <1>;
#size-cells = <1>;
power-controller@2800c0 {
pmb: power-controller@2800c0 {
compatible = "brcm,bcm4908-pmb";
reg = <0x2800c0 0x40>;
#power-domain-cells = <1>;