linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series
@ 2020-08-22 16:19 Christian Lamparter
  2020-08-22 16:19 ` [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32 Christian Lamparter
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui

Hello,

I've been holding on to this devices dts' for a while now.
But since the HW has been running with versions of these
patches for more than a year, I do think I should make it
available in upstream in order to move on.

Hardware-Info of the 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)

So far, the remaining TODOs center around the pinctrl,
i2c and WIFI. The I2C is implemented with the bit-banged
i2c-gpio driver as the SoC's I2C didn't budge after
many hours of trying.

A patch that included the "meraki" vendor-prefix has
been broken out of the series as recommended by
Florian Fainelli. Here's the link:
<https://lists.ozlabs.org/pipermail/linuxppc-dev/2020-August/216949.html>

Cheers,
Christian

Christian Lamparter (6):
  dt-bindings: ARM: add bindings for the Meraki MR32
  ARM: dts: BCM5301X: Specify PWM in the DT
  ARM: dts: BCM5301X: Specify uart2 in the DT
  ARM: dts: BCM5301X: Specify pcie2 in the DT
  MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files
  ARM: BCM5301X: Add DT for Meraki MR32

 .../bindings/arm/bcm/brcm,bcm4708.yaml        |   2 +
 MAINTAINERS                                   |   2 +-
 arch/arm/boot/dts/Makefile                    |   1 +
 arch/arm/boot/dts/bcm53016-meraki-mr32.dts    | 219 ++++++++++++++++++
 arch/arm/boot/dts/bcm5301x.dtsi               |  25 +-
 5 files changed, 246 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/boot/dts/bcm53016-meraki-mr32.dts

-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
@ 2020-08-22 16:19 ` Christian Lamparter
  2020-08-27  0:02   ` Florian Fainelli
  2020-08-22 16:19 ` [PATCH v2 2/6] ARM: dts: BCM5301X: Specify PWM in the DT Christian Lamparter
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui

mark the Meraki MR32 and its SoC (BCM53016) as supported
in the bindings documentation file.

A quick look on Broadcom BCM5301x series umbrella website reveals:

<https://www.broadcom.com/products/embedded-and-networking-processors/communications/bcm5301x>

"BCM53012 and BCM53016 with dual-core Cortex-A9 CPU at 1 GHz, 256KB L2 cache,
 16-bit DDR2 interface, USB3 integrated switch, GPHYs and packet accelerator".

As far as I can tell, Broadcom considers the SoC to be
a version of the BCM53012.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
---
v1 -> v2:
	- reworked commit message (Scott Branden)

---
 Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml
index d48313c7ae45..988e0bbb2a62 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml
@@ -83,6 +83,8 @@ properties:
               - brcm,bcm953012er
               - brcm,bcm953012hr
               - brcm,bcm953012k
+              - meraki,mr32
           - const: brcm,brcm53012
+          - const: brcm,brcm53016
           - const: brcm,bcm4708
 ...
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 2/6] ARM: dts: BCM5301X: Specify PWM in the DT
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
  2020-08-22 16:19 ` [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32 Christian Lamparter
@ 2020-08-22 16:19 ` Christian Lamparter
  2020-08-27  0:02   ` Florian Fainelli
  2020-08-22 16:19 ` [PATCH v2 3/6] ARM: dts: BCM5301X: Specify uart2 " Christian Lamparter
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui

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 <chunkeey@gmail.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>

---
v1 -> v2:
	- added labels for pinmux
---
 arch/arm/boot/dts/bcm5301x.dtsi | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 2d9b4dd05830..45cd8c7411dd 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -350,6 +350,14 @@ gmac3: ethernet@27000 {
 		};
 	};
 
+	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 @@ spi-pins {
 					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";
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 3/6] ARM: dts: BCM5301X: Specify uart2 in the DT
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
  2020-08-22 16:19 ` [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32 Christian Lamparter
  2020-08-22 16:19 ` [PATCH v2 2/6] ARM: dts: BCM5301X: Specify PWM in the DT Christian Lamparter
@ 2020-08-22 16:19 ` Christian Lamparter
  2020-08-27  0:02   ` Florian Fainelli
  2020-08-22 16:19 ` [PATCH v2 4/6] ARM: dts: BCM5301X: Specify pcie2 " Christian Lamparter
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui

The BCM53016 in the Meraki MR32 utilizes the third "uart2"
to connect to a on-board Bluetooth-LE 4.0 BCM20732 chip.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Reviewed-by: Scott Branden <scott.branden@broadcom.com>
---
 arch/arm/boot/dts/bcm5301x.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 45cd8c7411dd..eb1290fed235 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -392,6 +392,15 @@ usb3_dmp: syscon@18105000 {
 		reg = <0x18105000 0x1000>;
 	};
 
+	uart2: serial@18008000 {
+		compatible = "ns16550a";
+		reg = <0x18008000 0x20>;
+		clocks = <&iprocslow>;
+		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+		reg-shift = <2>;
+		status = "disabled";
+	};
+
 	i2c0: i2c@18009000 {
 		compatible = "brcm,iproc-i2c";
 		reg = <0x18009000 0x50>;
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 4/6] ARM: dts: BCM5301X: Specify pcie2 in the DT
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
                   ` (2 preceding siblings ...)
  2020-08-22 16:19 ` [PATCH v2 3/6] ARM: dts: BCM5301X: Specify uart2 " Christian Lamparter
@ 2020-08-22 16:19 ` Christian Lamparter
  2020-08-27  0:03   ` Florian Fainelli
  2020-08-22 16:19 ` [PATCH v2 5/6] MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files Christian Lamparter
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui

The SoC supports three pcie ports. Currently, only
pcie0 and pcie1 are enabled. This patch adds the
pcie2 port as well.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Reviewed-by: Scott Branden <scott.branden@broadcom.com>
---
 arch/arm/boot/dts/bcm5301x.dtsi | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index eb1290fed235..9d9e8fe3f6ae 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -252,6 +252,10 @@ pcie1: pcie@13000 {
 			reg = <0x00013000 0x1000>;
 		};
 
+		pcie2: pcie@14000 {
+			reg = <0x00014000 0x1000>;
+		};
+
 		usb2: usb2@21000 {
 			reg = <0x00021000 0x1000>;
 
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 5/6] MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
                   ` (3 preceding siblings ...)
  2020-08-22 16:19 ` [PATCH v2 4/6] ARM: dts: BCM5301X: Specify pcie2 " Christian Lamparter
@ 2020-08-22 16:19 ` Christian Lamparter
  2020-08-27  0:03   ` Florian Fainelli
  2020-08-22 16:19 ` [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32 Christian Lamparter
  2020-08-27  0:04 ` [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Florian Fainelli
  6 siblings, 1 reply; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui

This patch extends the existing entry for the
"BROADCOM BCM5301X ARM ARCHITECTURE" to include
files belonging to the BCM5301X.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index deaafb617361..eb9b551c5dd8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3433,7 +3433,7 @@ M:	bcm-kernel-feedback-list@broadcom.com
 L:	linux-arm-kernel@lists.infradead.org
 S:	Maintained
 F:	arch/arm/boot/dts/bcm470*
-F:	arch/arm/boot/dts/bcm5301x*.dtsi
+F:	arch/arm/boot/dts/bcm5301*
 F:	arch/arm/boot/dts/bcm953012*
 F:	arch/arm/mach-bcm/bcm_5301x.c
 
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
                   ` (4 preceding siblings ...)
  2020-08-22 16:19 ` [PATCH v2 5/6] MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files Christian Lamparter
@ 2020-08-22 16:19 ` Christian Lamparter
  2020-08-27  0:03   ` Florian Fainelli
  2020-09-10 20:38   ` Florian Fainelli
  2020-08-27  0:04 ` [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Florian Fainelli
  6 siblings, 2 replies; 17+ messages in thread
From: Christian Lamparter @ 2020-08-22 16:19 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring, Ray Jui,
	bcm-kernel-feedback-list

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;
+	};
+};
+
+&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>;
+		};
+	};
+};
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32
  2020-08-22 16:19 ` [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32 Christian Lamparter
@ 2020-08-27  0:02   ` Florian Fainelli
  0 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:02 UTC (permalink / raw)
  To: bcm-kernel-feedback-list, Christian Lamparter, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui

On Sat, 22 Aug 2020 18:19:18 +0200, Christian Lamparter <chunkeey@gmail.com> wrote:
> mark the Meraki MR32 and its SoC (BCM53016) as supported
> in the bindings documentation file.
> 
> A quick look on Broadcom BCM5301x series umbrella website reveals:
> 
> <https://www.broadcom.com/products/embedded-and-networking-processors/communications/bcm5301x>
> 
> "BCM53012 and BCM53016 with dual-core Cortex-A9 CPU at 1 GHz, 256KB L2 cache,
>  16-bit DDR2 interface, USB3 integrated switch, GPHYs and packet accelerator".
> 
> As far as I can tell, Broadcom considers the SoC to be
> a version of the BCM53012.
> 
> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
> Acked-by: Scott Branden <scott.branden@broadcom.com>
> ---

Applied to devicetree/next, thanks!
--
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/6] ARM: dts: BCM5301X: Specify PWM in the DT
  2020-08-22 16:19 ` [PATCH v2 2/6] ARM: dts: BCM5301X: Specify PWM in the DT Christian Lamparter
@ 2020-08-27  0:02   ` Florian Fainelli
  0 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:02 UTC (permalink / raw)
  To: bcm-kernel-feedback-list, Christian Lamparter, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui

On Sat, 22 Aug 2020 18:19:19 +0200, Christian Lamparter <chunkeey@gmail.com> wrote:
> 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 <chunkeey@gmail.com>
> Acked-by: Scott Branden <scott.branden@broadcom.com>
> 
> ---

Applied to devicetree/next, thanks!
--
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 3/6] ARM: dts: BCM5301X: Specify uart2 in the DT
  2020-08-22 16:19 ` [PATCH v2 3/6] ARM: dts: BCM5301X: Specify uart2 " Christian Lamparter
@ 2020-08-27  0:02   ` Florian Fainelli
  0 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:02 UTC (permalink / raw)
  To: bcm-kernel-feedback-list, Christian Lamparter, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui

On Sat, 22 Aug 2020 18:19:20 +0200, Christian Lamparter <chunkeey@gmail.com> wrote:
> The BCM53016 in the Meraki MR32 utilizes the third "uart2"
> to connect to a on-board Bluetooth-LE 4.0 BCM20732 chip.
> 
> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
> Reviewed-by: Scott Branden <scott.branden@broadcom.com>
> ---

Applied to devicetree/next, thanks!
--
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 4/6] ARM: dts: BCM5301X: Specify pcie2 in the DT
  2020-08-22 16:19 ` [PATCH v2 4/6] ARM: dts: BCM5301X: Specify pcie2 " Christian Lamparter
@ 2020-08-27  0:03   ` Florian Fainelli
  0 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:03 UTC (permalink / raw)
  To: bcm-kernel-feedback-list, Christian Lamparter, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui

On Sat, 22 Aug 2020 18:19:21 +0200, Christian Lamparter <chunkeey@gmail.com> wrote:
> The SoC supports three pcie ports. Currently, only
> pcie0 and pcie1 are enabled. This patch adds the
> pcie2 port as well.
> 
> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
> Reviewed-by: Scott Branden <scott.branden@broadcom.com>
> ---

Applied to devicetree/next, thanks!
--
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32
  2020-08-22 16:19 ` [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32 Christian Lamparter
@ 2020-08-27  0:03   ` Florian Fainelli
  2020-09-10 20:38   ` Florian Fainelli
  1 sibling, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:03 UTC (permalink / raw)
  To: bcm-kernel-feedback-list, Christian Lamparter, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 5/6] MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files
  2020-08-22 16:19 ` [PATCH v2 5/6] MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files Christian Lamparter
@ 2020-08-27  0:03   ` Florian Fainelli
  0 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:03 UTC (permalink / raw)
  To: bcm-kernel-feedback-list, Christian Lamparter, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui

On Sat, 22 Aug 2020 18:19:22 +0200, Christian Lamparter <chunkeey@gmail.com> wrote:
> This patch extends the existing entry for the
> "BROADCOM BCM5301X ARM ARCHITECTURE" to include
> files belonging to the BCM5301X.
> 
> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
> Acked-by: Scott Branden <scott.branden@broadcom.com>
> ---

Applied to maintainers/next, thanks!
--
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series
  2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
                   ` (5 preceding siblings ...)
  2020-08-22 16:19 ` [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32 Christian Lamparter
@ 2020-08-27  0:04 ` Florian Fainelli
  6 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-08-27  0:04 UTC (permalink / raw)
  To: Christian Lamparter, linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring,
	bcm-kernel-feedback-list, Ray Jui



On 8/22/2020 9:19 AM, Christian Lamparter wrote:
> Hello,
> 
> I've been holding on to this devices dts' for a while now.
> But since the HW has been running with versions of these
> patches for more than a year, I do think I should make it
> available in upstream in order to move on.
> 
> Hardware-Info of the 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)
> 
> So far, the remaining TODOs center around the pinctrl,
> i2c and WIFI. The I2C is implemented with the bit-banged
> i2c-gpio driver as the SoC's I2C didn't budge after
> many hours of trying.
> 
> A patch that included the "meraki" vendor-prefix has
> been broken out of the series as recommended by
> Florian Fainelli. Here's the link:
> <https://lists.ozlabs.org/pipermail/linuxppc-dev/2020-August/216949.html>

Series applied, thanks Christian, let's work separately on the pinctrl 
driver and using the hardware i2c controller. Thanks
-- 
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32
  2020-08-22 16:19 ` [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32 Christian Lamparter
  2020-08-27  0:03   ` Florian Fainelli
@ 2020-09-10 20:38   ` Florian Fainelli
  2020-09-11 17:27     ` Christian Lamparter
  1 sibling, 1 reply; 17+ messages in thread
From: Florian Fainelli @ 2020-09-10 20:38 UTC (permalink / raw)
  To: Christian Lamparter, linux-arm-kernel
  Cc: Florian Fainelli, Scott Branden, Hauke Mehrtens,
	Rafał Miłecki, Chris Blake, Rob Herring, Ray Jui,
	bcm-kernel-feedback-list



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?
-- 
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32
  2020-09-10 20:38   ` Florian Fainelli
@ 2020-09-11 17:27     ` Christian Lamparter
  2020-09-11 17:30       ` Florian Fainelli
  0 siblings, 1 reply; 17+ messages in thread
From: Christian Lamparter @ 2020-09-11 17:27 UTC (permalink / raw)
  To: Florian Fainelli, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui, bcm-kernel-feedback-list

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


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32
  2020-09-11 17:27     ` Christian Lamparter
@ 2020-09-11 17:30       ` Florian Fainelli
  0 siblings, 0 replies; 17+ messages in thread
From: Florian Fainelli @ 2020-09-11 17:30 UTC (permalink / raw)
  To: Christian Lamparter, Florian Fainelli, linux-arm-kernel
  Cc: Scott Branden, Hauke Mehrtens, Rafał Miłecki,
	Chris Blake, Rob Herring, Ray Jui, bcm-kernel-feedback-list



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
-- 
Florian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-09-11 17:31 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-22 16:19 [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Christian Lamparter
2020-08-22 16:19 ` [PATCH v2 1/6] dt-bindings: ARM: add bindings for the Meraki MR32 Christian Lamparter
2020-08-27  0:02   ` Florian Fainelli
2020-08-22 16:19 ` [PATCH v2 2/6] ARM: dts: BCM5301X: Specify PWM in the DT Christian Lamparter
2020-08-27  0:02   ` Florian Fainelli
2020-08-22 16:19 ` [PATCH v2 3/6] ARM: dts: BCM5301X: Specify uart2 " Christian Lamparter
2020-08-27  0:02   ` Florian Fainelli
2020-08-22 16:19 ` [PATCH v2 4/6] ARM: dts: BCM5301X: Specify pcie2 " Christian Lamparter
2020-08-27  0:03   ` Florian Fainelli
2020-08-22 16:19 ` [PATCH v2 5/6] MAINTAINERS: extend BCM5301X ARM ARCHITECTURE files Christian Lamparter
2020-08-27  0:03   ` Florian Fainelli
2020-08-22 16:19 ` [PATCH v2 6/6] ARM: BCM5301X: Add DT for Meraki MR32 Christian Lamparter
2020-08-27  0:03   ` Florian Fainelli
2020-09-10 20:38   ` Florian Fainelli
2020-09-11 17:27     ` Christian Lamparter
2020-09-11 17:30       ` Florian Fainelli
2020-08-27  0:04 ` [PATCH v2 0/6] ARM: BCM5301X: add Meraki MR32 series Florian Fainelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).