All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.