Message ID | e1646714f56452f63340df991e0b7d90f456d515.1598111680.git.chunkeey@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: BCM5301X: add Meraki MR32 series | expand |
On Sat, 22 Aug 2020 18:19:23 +0200, Christian Lamparter <chunkeey@gmail.com> wrote: > add support for the Cisco Meraki MR32. > This is a dual-band enterprise class 802.11ac access point. > The unit was donated by Chris Blake. Thank you! > > SoC: Broadcom BCM53016A1 (1 GHz, 2 cores) > RAM: 128 MiB > NAND: 128 MiB Spansion S34ML01G2 (~114 MiB useable) > ETH: 1GBit Ethernet Port - PoE > WIFI1: Broadcom BCM43520 an+ac (2x2:2 - id: 0x4352) > WIFI2: Broadcom BCM43520 bgn (2x2:2 - id: 0x4352) > WIFI3: Broadcom BCM43428 abgn (1x1:1 - id: 43428) > > BLE: Broadcom BCM20732 (ttyS1) > LEDS: 1 x Programmable RGB Status LED (driven by a PWM) > 1 x White LED (GPIO) > 1 x Orange LED Fault Indicator (GPIO) > 2 x LAN Activity / Speed LEDs (On the RJ45 Port) > BUTTON: one Reset button > MISC: AT24C64 8KiB EEPROM (i2c - stores Ethernet MAC) > ina219 hardware monitor (i2c) > Kensington Lock > > SERIAL: > WARNING: The serial port needs a TTL/RS-232 3V3 level converter! > The Serial setting is 115200-8-N-1. The board has a populated > right angle 1x4 0.1" pinheader. > The pinout is: VCC, RX, TX, GND. > > Odd stuff: > - uart0 clock frequency is 62.5 MHz. > - The LEDs are labeled as SYS-LED1 through SYS-LED3 > because of the silkscreen on the PCB. > - the original u-boot has been compiled with most functions > and commands disabled. The u-boot env isn't setup properly > either and as a result, the bcm47xxpart probing is not > working. Hence, the nand partitions are specified through a > "fixed-partition" binding. > - The "WICED SMART(TM)" Bluetooth LE 4.0 BCM20732 chip is > connected to uart2 of the SoC. The BCM20732 does not > provide a HCI. So the linux' bluetooth stack is useless. > The mock-up node with the compatible binding and > enable-gpios property is provided solely as documentation. > > Signed-off-by: Christian Lamparter <chunkeey@gmail.com> > > --- Applied to devicetree/next, thanks! -- Florian
On 8/22/2020 9:19 AM, Christian Lamparter wrote: > add support for the Cisco Meraki MR32. > This is a dual-band enterprise class 802.11ac access point. > The unit was donated by Chris Blake. Thank you! > > SoC: Broadcom BCM53016A1 (1 GHz, 2 cores) > RAM: 128 MiB > NAND: 128 MiB Spansion S34ML01G2 (~114 MiB useable) > ETH: 1GBit Ethernet Port - PoE > WIFI1: Broadcom BCM43520 an+ac (2x2:2 - id: 0x4352) > WIFI2: Broadcom BCM43520 bgn (2x2:2 - id: 0x4352) > WIFI3: Broadcom BCM43428 abgn (1x1:1 - id: 43428) > > BLE: Broadcom BCM20732 (ttyS1) > LEDS: 1 x Programmable RGB Status LED (driven by a PWM) > 1 x White LED (GPIO) > 1 x Orange LED Fault Indicator (GPIO) > 2 x LAN Activity / Speed LEDs (On the RJ45 Port) > BUTTON: one Reset button > MISC: AT24C64 8KiB EEPROM (i2c - stores Ethernet MAC) > ina219 hardware monitor (i2c) > Kensington Lock > > SERIAL: > WARNING: The serial port needs a TTL/RS-232 3V3 level converter! > The Serial setting is 115200-8-N-1. The board has a populated > right angle 1x4 0.1" pinheader. > The pinout is: VCC, RX, TX, GND. > > Odd stuff: > - uart0 clock frequency is 62.5 MHz. > - The LEDs are labeled as SYS-LED1 through SYS-LED3 > because of the silkscreen on the PCB. > - the original u-boot has been compiled with most functions > and commands disabled. The u-boot env isn't setup properly > either and as a result, the bcm47xxpart probing is not > working. Hence, the nand partitions are specified through a > "fixed-partition" binding. > - The "WICED SMART(TM)" Bluetooth LE 4.0 BCM20732 chip is > connected to uart2 of the SoC. The BCM20732 does not > provide a HCI. So the linux' bluetooth stack is useless. > The mock-up node with the compatible binding and > enable-gpios property is provided solely as documentation. > > Signed-off-by: Christian Lamparter <chunkeey@gmail.com> > > --- > > v1 -> v2: > - fixed order of boards in Makefile. (Scott Branden) > - added device_type to memory node. (Florian Fainelli) > - added hw i2c, although doesn't work. (Florian Fainelli) > - renamed gpio-keys to just keys. > - included pinmux configurations for i2c and pwm. > --- > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 219 +++++++++++++++++++++ > 2 files changed, 220 insertions(+) > create mode 100644 arch/arm/boot/dts/bcm53016-meraki-mr32.dts > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index 4572db3fa5ae..d254ca2a942d 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -127,6 +127,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ > bcm47094-luxul-xwr-3150-v1.dtb \ > bcm47094-netgear-r8500.dtb \ > bcm47094-phicomm-k3.dtb \ > + bcm53016-meraki-mr32.dtb \ > bcm94708.dtb \ > bcm94709.dtb \ > bcm953012er.dtb \ > diff --git a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts > new file mode 100644 > index 000000000000..7306df7ff704 > --- /dev/null > +++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts > @@ -0,0 +1,219 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Broadcom BCM470X / BCM5301X ARM platform code. > + * DTS for Meraki MR32 / Codename: Espresso > + * > + * Copyright (C) 2018-2020 Christian Lamparter <chunkeey@gmail.com> > + */ > + > +/dts-v1/; > + > +#include "bcm4708.dtsi" > +#include "bcm5301x-nand-cs0-bch8.dtsi" > +#include <dt-bindings/leds/common.h> > + > +/ { > + compatible = "meraki,mr32", "brcm,brcm53016", "brcm,bcm4708"; > + model = "Meraki MR32"; > + > + chosen { > + bootargs = " console=ttyS0,115200n8 earlycon"; > + }; > + > + memory { > + reg = <0x00000000 0x08000000>; > + device_type = "memory"; > + }; > + > + aliases { > + serial1 = &uart2; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + sysled3 { > + function = LED_FUNCTION_FAULT; > + color = <LED_COLOR_ID_AMBER>; > + gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>; > + panic-indicator; > + }; > + sysled2 { > + function = LED_FUNCTION_INDICATOR; > + color = <LED_COLOR_ID_WHITE>; > + gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>; > + }; > + }; > + > + keys { > + compatible = "gpio-keys"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + restart { > + label = "Reset"; > + linux,code = <KEY_RESTART>; > + gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + pwm-leds { > + compatible = "pwm-leds"; > + > + red { > + /* SYS-LED 1 - Tricolor */ > + function = LED_FUNCTION_INDICATOR; > + color = <LED_COLOR_ID_RED>; > + pwms = <&pwm 0 50000 0>; > + max-brightness = <255>; > + }; > + > + green { > + /* SYS-LED 1 - Tricolor */ > + function = LED_FUNCTION_POWER; > + color = <LED_COLOR_ID_GREEN>; > + pwms = <&pwm 1 50000 0>; > + max-brightness = <255>; > + }; > + > + blue { > + /* SYS-LED 1 - Tricolor */ > + function = LED_FUNCTION_INDICATOR; > + color = <LED_COLOR_ID_BLUE>; > + pwms = <&pwm 2 50000 0>; > + max-brightness = <255>; > + }; > + }; > + > + i2c { > + /* > + * The platform provided I2C does not budge. > + * This is a replacement until I can figure > + * out what are the missing bits... > + */ > + > + compatible = "i2c-gpio"; > + sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; > + scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; > + i2c-gpio,delay-us = <10>; /* close to 100 kHz */ > + #address-cells = <1>; > + #size-cells = <0>; > + > + current_sense: ina219@45 { > + compatible = "ti,ina219"; > + reg = <0x45>; > + shunt-resistor = <60000>; /* = 60 mOhms */ > + }; > + > + eeprom: eeprom@50 { > + compatible = "atmel,24c64"; > + reg = <0x50>; > + pagesize = <32>; > + read-only; > + }; > + }; > +}; > + > +&i2c0 { > + /* status = "okay"; - can be enabled once it works. */ > + > + pinctrl-names = "default"; > + pinctrl-0 = <&pinmux_i2c>; > + > + clock-frequency = <100000>; > + > + current_sense: ina219@45 { > + compatible = "ti,ina219"; > + reg = <0x45>; > + shunt-resistor = <60000>; /* = 60 mOhms */ > + }; > + > + eeprom: eeprom@50 { > + compatible = "atmel,24c64"; > + reg = <0x50>; > + pagesize = <32>; > + read-only; > + }; These would create duplicate labels which are hard errors per DTC, so I took out the entire &i2c0 override here into what I merged into devicetree/next. This cannot have built for you unless you run dtc with the force flag, is that how OpenWrt does it?
Hello, On 2020-09-10 22:38, Florian Fainelli wrote: > > > On 8/22/2020 9:19 AM, Christian Lamparter wrote: >> add support for the Cisco Meraki MR32. >> This is a dual-band enterprise class 802.11ac access point. >> The unit was donated by Chris Blake. Thank you! >> [...] >> + >> + i2c { >> + /* >> + * The platform provided I2C does not budge. >> + * This is a replacement until I can figure >> + * out what are the missing bits... >> + */ >> + >> + compatible = "i2c-gpio"; >> + sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; >> + scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; >> + i2c-gpio,delay-us = <10>; /* close to 100 kHz */ >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + current_sense: ina219@45 { >> + compatible = "ti,ina219"; >> + reg = <0x45>; >> + shunt-resistor = <60000>; /* = 60 mOhms */ >> + }; >> + >> + eeprom: eeprom@50 { >> + compatible = "atmel,24c64"; >> + reg = <0x50>; >> + pagesize = <32>; >> + read-only; >> + }; >> + }; >> +}; >> + >> +&i2c0 { >> + /* status = "okay"; - can be enabled once it works. */ >> + >> + pinctrl-names = "default"; >> + pinctrl-0 = <&pinmux_i2c>; >> + >> + clock-frequency = <100000>; >> + >> + current_sense: ina219@45 { >> + compatible = "ti,ina219"; >> + reg = <0x45>; >> + shunt-resistor = <60000>; /* = 60 mOhms */ >> + }; >> + >> + eeprom: eeprom@50 { >> + compatible = "atmel,24c64"; >> + reg = <0x50>; >> + pagesize = <32>; >> + read-only; >> + }; > > These would create duplicate labels which are hard errors per DTC, > so I took out the entire &i2c0 override here into what I merged into devicetree/next. > > This cannot have built for you unless you run dtc with the force flag, is that how OpenWrt does it? I'm sorry for my mistake. Yes, I looked at this now again and my tree had this uncommited change :(. --- $ git diff diff --git a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts index 7306df7ff704..35e733b0db62 100644 --- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts +++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts @@ -122,13 +122,13 @@ &i2c0 { clock-frequency = <100000>; - current_sense: ina219@45 { + /* current_sense: */ ina219@45 { compatible = "ti,ina219"; reg = <0x45>; shunt-resistor = <60000>; /* = 60 mOhms */ }; - eeprom: eeprom@50 { + /* eeprom: */ eeprom@50 { compatible = "atmel,24c64"; reg = <0x50>; pagesize = <32>; --- Didn't show up when running make. In the OpenWrt version (As OpenWrt is currently using a patched 5.4) the labels on the non-functioning i2c node are commented-out. <https://patchwork.ozlabs.org/project/openwrt/patch/c647ad56b4adb449cd448a2bc56d58058fd06e6f.1599346205.git.chunkeey@gmail.com/> |++&i2c0 { |[...] (Cut) |++ |++ /* current_sense: */ ina219@45 { |++ compatible = "ti,ina219"; |++ reg = <0x45>; |++ shunt-resistor = <60000>; /* = 60 mOhms */ |++ }; |++ |++ /* eeprom: */ eeprom@50 { |++ compatible = "atmel,24c64"; |++ reg = <0x50>; |++ pagesize = <32>; |++ read-only; |++ }; |++}; Ok, I'll drop the &i2c node as well in my MR32 OpenWrt series. But I'll keep a patch with the i2c node in my openwrt staging tree. (I can't find devicetree/next on https://git.kernel.org/ . Can you please tell me the link to it?) Cheers, Christian
On 9/11/2020 10:27 AM, Christian Lamparter wrote: > Hello, > > On 2020-09-10 22:38, Florian Fainelli wrote: >> >> >> On 8/22/2020 9:19 AM, Christian Lamparter wrote: >>> add support for the Cisco Meraki MR32. >>> This is a dual-band enterprise class 802.11ac access point. >>> The unit was donated by Chris Blake. Thank you! >>> > [...] > >>> + >>> + i2c { >>> + /* >>> + * The platform provided I2C does not budge. >>> + * This is a replacement until I can figure >>> + * out what are the missing bits... >>> + */ >>> + >>> + compatible = "i2c-gpio"; >>> + sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; >>> + scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; >>> + i2c-gpio,delay-us = <10>; /* close to 100 kHz */ >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + current_sense: ina219@45 { >>> + compatible = "ti,ina219"; >>> + reg = <0x45>; >>> + shunt-resistor = <60000>; /* = 60 mOhms */ >>> + }; >>> + >>> + eeprom: eeprom@50 { >>> + compatible = "atmel,24c64"; >>> + reg = <0x50>; >>> + pagesize = <32>; >>> + read-only; >>> + }; >>> + }; >>> +}; >>> + >>> +&i2c0 { >>> + /* status = "okay"; - can be enabled once it works. */ >>> + >>> + pinctrl-names = "default"; >>> + pinctrl-0 = <&pinmux_i2c>; >>> + >>> + clock-frequency = <100000>; >>> + >>> + current_sense: ina219@45 { >>> + compatible = "ti,ina219"; >>> + reg = <0x45>; >>> + shunt-resistor = <60000>; /* = 60 mOhms */ >>> + }; >>> + >>> + eeprom: eeprom@50 { >>> + compatible = "atmel,24c64"; >>> + reg = <0x50>; >>> + pagesize = <32>; >>> + read-only; >>> + }; >> >> These would create duplicate labels which are hard errors per DTC, >> so I took out the entire &i2c0 override here into what I merged into >> devicetree/next. >> >> This cannot have built for you unless you run dtc with the force flag, >> is that how OpenWrt does it? > > I'm sorry for my mistake. Yes, I looked at this now again and my tree > had this uncommited change :(. > > --- > $ git diff > diff --git a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts > b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts > index 7306df7ff704..35e733b0db62 100644 > --- a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts > +++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts > @@ -122,13 +122,13 @@ &i2c0 { > > clock-frequency = <100000>; > > - current_sense: ina219@45 { > + /* current_sense: */ ina219@45 { > compatible = "ti,ina219"; > reg = <0x45>; > shunt-resistor = <60000>; /* = 60 mOhms */ > }; > > - eeprom: eeprom@50 { > + /* eeprom: */ eeprom@50 { > compatible = "atmel,24c64"; > reg = <0x50>; > pagesize = <32>; > --- > > Didn't show up when running make. > > In the OpenWrt version (As OpenWrt is currently using a patched 5.4) > the labels on the non-functioning i2c node are commented-out. > > <https://patchwork.ozlabs.org/project/openwrt/patch/c647ad56b4adb449cd448a2bc56d58058fd06e6f.1599346205.git.chunkeey@gmail.com/> > > > |++&i2c0 { > |[...] (Cut) > |++ > |++ /* current_sense: */ ina219@45 { > |++ compatible = "ti,ina219"; > |++ reg = <0x45>; > |++ shunt-resistor = <60000>; /* = 60 mOhms */ > |++ }; > |++ > |++ /* eeprom: */ eeprom@50 { > |++ compatible = "atmel,24c64"; > |++ reg = <0x50>; > |++ pagesize = <32>; > |++ read-only; > |++ }; > |++}; > > Ok, I'll drop the &i2c node as well in my MR32 OpenWrt series. > But I'll keep a patch with the i2c node in my openwrt staging tree. > > (I can't find devicetree/next on https://git.kernel.org/ . > Can you please tell me the link to it?) https://github.com/Broadcom/stblinux/commits/devicetree/next
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 4572db3fa5ae..d254ca2a942d 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -127,6 +127,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ bcm47094-luxul-xwr-3150-v1.dtb \ bcm47094-netgear-r8500.dtb \ bcm47094-phicomm-k3.dtb \ + bcm53016-meraki-mr32.dtb \ bcm94708.dtb \ bcm94709.dtb \ bcm953012er.dtb \ diff --git a/arch/arm/boot/dts/bcm53016-meraki-mr32.dts b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts new file mode 100644 index 000000000000..7306df7ff704 --- /dev/null +++ b/arch/arm/boot/dts/bcm53016-meraki-mr32.dts @@ -0,0 +1,219 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Broadcom BCM470X / BCM5301X ARM platform code. + * DTS for Meraki MR32 / Codename: Espresso + * + * Copyright (C) 2018-2020 Christian Lamparter <chunkeey@gmail.com> + */ + +/dts-v1/; + +#include "bcm4708.dtsi" +#include "bcm5301x-nand-cs0-bch8.dtsi" +#include <dt-bindings/leds/common.h> + +/ { + compatible = "meraki,mr32", "brcm,brcm53016", "brcm,bcm4708"; + model = "Meraki MR32"; + + chosen { + bootargs = " console=ttyS0,115200n8 earlycon"; + }; + + memory { + reg = <0x00000000 0x08000000>; + device_type = "memory"; + }; + + aliases { + serial1 = &uart2; + }; + + leds { + compatible = "gpio-leds"; + + sysled3 { + function = LED_FUNCTION_FAULT; + color = <LED_COLOR_ID_AMBER>; + gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>; + panic-indicator; + }; + sysled2 { + function = LED_FUNCTION_INDICATOR; + color = <LED_COLOR_ID_WHITE>; + gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + restart { + label = "Reset"; + linux,code = <KEY_RESTART>; + gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>; + }; + }; + + pwm-leds { + compatible = "pwm-leds"; + + red { + /* SYS-LED 1 - Tricolor */ + function = LED_FUNCTION_INDICATOR; + color = <LED_COLOR_ID_RED>; + pwms = <&pwm 0 50000 0>; + max-brightness = <255>; + }; + + green { + /* SYS-LED 1 - Tricolor */ + function = LED_FUNCTION_POWER; + color = <LED_COLOR_ID_GREEN>; + pwms = <&pwm 1 50000 0>; + max-brightness = <255>; + }; + + blue { + /* SYS-LED 1 - Tricolor */ + function = LED_FUNCTION_INDICATOR; + color = <LED_COLOR_ID_BLUE>; + pwms = <&pwm 2 50000 0>; + max-brightness = <255>; + }; + }; + + i2c { + /* + * The platform provided I2C does not budge. + * This is a replacement until I can figure + * out what are the missing bits... + */ + + compatible = "i2c-gpio"; + sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; + scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; + i2c-gpio,delay-us = <10>; /* close to 100 kHz */ + #address-cells = <1>; + #size-cells = <0>; + + current_sense: ina219@45 { + compatible = "ti,ina219"; + reg = <0x45>; + shunt-resistor = <60000>; /* = 60 mOhms */ + }; + + eeprom: eeprom@50 { + compatible = "atmel,24c64"; + reg = <0x50>; + pagesize = <32>; + read-only; + }; + }; +}; + +&i2c0 { + /* status = "okay"; - can be enabled once it works. */ + + pinctrl-names = "default"; + pinctrl-0 = <&pinmux_i2c>; + + clock-frequency = <100000>; + + current_sense: ina219@45 { + compatible = "ti,ina219"; + reg = <0x45>; + shunt-resistor = <60000>; /* = 60 mOhms */ + }; + + eeprom: eeprom@50 { + compatible = "atmel,24c64"; + reg = <0x50>; + pagesize = <32>; + read-only; + }; +}; + +&uart0 { + clock-frequency = <62500000>; + /delete-property/ clocks; +}; + +&uart1 { + status = "disabled"; +}; + +&uart2 { + status = "okay"; + /* + * bluetooth-le { + * compatible = "brcm,bcm20732"; + * enable-gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>; + *}; + */ +}; + +&gmac1 { + status = "disabled"; +}; +&gmac2 { + status = "disabled"; +}; +&gmac3 { + status = "disabled"; +}; + +&pwm { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pinmux_pwm>; +}; + +&nandcs { + nand-ecc-algo = "hw"; + + partitions { + /* + * The partition autodetection does not work for this device. + * It will only detect the "nvram" partition with an incorrect size. + * [ 1.721667] 1 bcm47xxpart partitions found on MTD device brcmnand.0 + * [ 1.727962] Creating 1 MTD partitions on "brcmnand.0": + * [ 1.733117] 0x000000400000-0x000008000000 : "nvram" + */ + + compatible = "fixed-partitions"; + #address-cells = <0x1>; + #size-cells = <0x1>; + + partition0@0 { + label = "u-boot"; + reg = <0x0 0x100000>; + read-only; + }; + + partition1@100000 { + label = "bootkernel1"; + reg = <0x100000 0x300000>; + read-only; + }; + + partition2@400000 { + label = "nvram"; + reg = <0x400000 0x100000>; + read-only; + }; + + partition3@500000 { + label = "bootkernel2"; + reg = <0x500000 0x300000>; + read-only; + }; + + partition4@800000 { + label = "ubi"; + reg = <0x800000 0x7780000>; + }; + }; +};
add support for the Cisco Meraki MR32. This is a dual-band enterprise class 802.11ac access point. The unit was donated by Chris Blake. Thank you! SoC: Broadcom BCM53016A1 (1 GHz, 2 cores) RAM: 128 MiB NAND: 128 MiB Spansion S34ML01G2 (~114 MiB useable) ETH: 1GBit Ethernet Port - PoE WIFI1: Broadcom BCM43520 an+ac (2x2:2 - id: 0x4352) WIFI2: Broadcom BCM43520 bgn (2x2:2 - id: 0x4352) WIFI3: Broadcom BCM43428 abgn (1x1:1 - id: 43428) BLE: Broadcom BCM20732 (ttyS1) LEDS: 1 x Programmable RGB Status LED (driven by a PWM) 1 x White LED (GPIO) 1 x Orange LED Fault Indicator (GPIO) 2 x LAN Activity / Speed LEDs (On the RJ45 Port) BUTTON: one Reset button MISC: AT24C64 8KiB EEPROM (i2c - stores Ethernet MAC) ina219 hardware monitor (i2c) Kensington Lock SERIAL: WARNING: The serial port needs a TTL/RS-232 3V3 level converter! The Serial setting is 115200-8-N-1. The board has a populated right angle 1x4 0.1" pinheader. The pinout is: VCC, RX, TX, GND. Odd stuff: - uart0 clock frequency is 62.5 MHz. - The LEDs are labeled as SYS-LED1 through SYS-LED3 because of the silkscreen on the PCB. - the original u-boot has been compiled with most functions and commands disabled. The u-boot env isn't setup properly either and as a result, the bcm47xxpart probing is not working. Hence, the nand partitions are specified through a "fixed-partition" binding. - The "WICED SMART(TM)" Bluetooth LE 4.0 BCM20732 chip is connected to uart2 of the SoC. The BCM20732 does not provide a HCI. So the linux' bluetooth stack is useless. The mock-up node with the compatible binding and enable-gpios property is provided solely as documentation. Signed-off-by: Christian Lamparter <chunkeey@gmail.com> --- v1 -> v2: - fixed order of boards in Makefile. (Scott Branden) - added device_type to memory node. (Florian Fainelli) - added hw i2c, although doesn't work. (Florian Fainelli) - renamed gpio-keys to just keys. - included pinmux configurations for i2c and pwm. --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 219 +++++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 arch/arm/boot/dts/bcm53016-meraki-mr32.dts