diff mbox series

[v1,2/2] ARM: BCM5301X: Add DT for Meraki MR26

Message ID 20220611165948.410308-2-chunkeey@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v1,1/2] dt-bindings: ARM: add bindings for the Meraki MR26 | expand

Commit Message

Christian Lamparter June 11, 2022, 4:59 p.m. UTC
Meraki MR26 is an EOL wireless access point featuring a
PoE ethernet port and two dual-band 3x3 MIMO 802.11n
radios and 1x1 dual-band WIFI dedicated to scanning.

Thank you Amir for the unit and PSU.

Hardware info:
SOC   : Broadcom BCM53015A1KFEBG (dual-core Cortex-A9 CPU at 800 MHz)
RAM   : H5TQ1G63EFR, SK hynix Inc. 1Gb DDR3 SDRAM = 128 MiB
NAND  : S34ML01G100TF100, S34ML01G1 1 Gb Spansion SLC NAND Flash = 128 MiB
ETH   : 1GBit Ethernet Port - PoE (TPS23754 PoE Interface)

WIFI0 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
WIFI1 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
WIFI2 : Broadcom BCM43428               802.11 abgn (1x1:1)
BUTTON: one reset button
LEDS  : one amber (fault), one white (indicator) LED, separate RGB-LED.
MISC  : Atmel AT24C64 8KiB EEPROM i2c
      : Ti INA219 26V, 12-bit, i2c output current/voltage/power monitor

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 (next to J3, has the pin 1 indicator), RX, TX, GND.

Odd stuff:

- uboot does not support lzma compression, but gzip'd uImage/DTB work.
- uboot claims to support FIT, but fails to pass the DTB to the kernel.
  Appending the dtb after the kernel image works.
- RGB-controller is supported through an external userspace program.
- The ubi partition contains a "board-config" volume. It stores the
  MAC Address (0x66 in binary) and Serial No. (0x7c alpha-numerical).
- SoC's temperature sensor always reports that it is on fire.
  This causes the system to immediately shutdown! Looking at reported
  "418 degree Celsius" suggests that this sensor is not working.

WIFI:
b43 is able to initialize all three WIFIs @ 802.11bg.
| b43-phy0: Broadcom 43431 WLAN found (core revision 29)
| bcma-pci-bridge 0000:01:00.0: bus1: Switched to core: 0x812
| b43-phy0: Found PHY: Analog 9, Type 7 (HT), Revision 1
| b43-phy0: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
| b43-phy0 warning: 5 GHz band is unsupported on this PHY
| b43-phy1: Broadcom 43431 WLAN found (core revision 29)
| bcma-pci-bridge 0001:01:00.0: bus2: Switched to core: 0x812
| b43-phy1: Found PHY: Analog 9, Type 7 (HT), Revision 1
| b43-phy1: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
| b43-phy1 warning: 5 GHz band is unsupported on this PHY
| b43-phy2: Broadcom 43228 WLAN found (core revision 30)
| bcma-pci-bridge 0002:01:00.0: bus3: Switched to core: 0x812
| b43-phy2: Found PHY: Analog 9, Type 4 (N), Revision 16
| b43-phy2: Found Radio: Manuf 0x17F, ID 0x2057, Revision 9, Version 1
| Broadcom 43xx driver loaded [ Features: NL ]

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
---

|WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
|#89:
|new file mode 100644

MAINTAINERS has:

>BROADCOM BCM5301X ARM ARCHITECTURE
>[...]
>F:      arch/arm/boot/dts/bcm5301*

|WARNING: DT compatible string "atmel,24c64" appears un-documented \
|-- check ./Documentation/devicetree/bindings/
|#245: FILE: arch/arm/boot/dts/bcm53015-meraki-mr26.dts:152:
|+            compatible = "atmel,24c64";

weird, it should match what is in:
Documentation/devicetree/bindings/eeprom/at24.yaml
---
 arch/arm/boot/dts/Makefile                 |   1 +
 arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 166 +++++++++++++++++++++
 2 files changed, 167 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm53015-meraki-mr26.dts

Comments

Rob Herring (Arm) June 16, 2022, 5:30 p.m. UTC | #1
On Sat, Jun 11, 2022 at 06:59:48PM +0200, Christian Lamparter wrote:
> Meraki MR26 is an EOL wireless access point featuring a
> PoE ethernet port and two dual-band 3x3 MIMO 802.11n
> radios and 1x1 dual-band WIFI dedicated to scanning.
> 
> Thank you Amir for the unit and PSU.
> 
> Hardware info:
> SOC   : Broadcom BCM53015A1KFEBG (dual-core Cortex-A9 CPU at 800 MHz)
> RAM   : H5TQ1G63EFR, SK hynix Inc. 1Gb DDR3 SDRAM = 128 MiB
> NAND  : S34ML01G100TF100, S34ML01G1 1 Gb Spansion SLC NAND Flash = 128 MiB
> ETH   : 1GBit Ethernet Port - PoE (TPS23754 PoE Interface)
> 
> WIFI0 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
> WIFI1 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
> WIFI2 : Broadcom BCM43428               802.11 abgn (1x1:1)
> BUTTON: one reset button
> LEDS  : one amber (fault), one white (indicator) LED, separate RGB-LED.
> MISC  : Atmel AT24C64 8KiB EEPROM i2c
>       : Ti INA219 26V, 12-bit, i2c output current/voltage/power monitor
> 
> 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 (next to J3, has the pin 1 indicator), RX, TX, GND.
> 
> Odd stuff:
> 
> - uboot does not support lzma compression, but gzip'd uImage/DTB work.
> - uboot claims to support FIT, but fails to pass the DTB to the kernel.
>   Appending the dtb after the kernel image works.
> - RGB-controller is supported through an external userspace program.
> - The ubi partition contains a "board-config" volume. It stores the
>   MAC Address (0x66 in binary) and Serial No. (0x7c alpha-numerical).
> - SoC's temperature sensor always reports that it is on fire.
>   This causes the system to immediately shutdown! Looking at reported
>   "418 degree Celsius" suggests that this sensor is not working.
> 
> WIFI:
> b43 is able to initialize all three WIFIs @ 802.11bg.
> | b43-phy0: Broadcom 43431 WLAN found (core revision 29)
> | bcma-pci-bridge 0000:01:00.0: bus1: Switched to core: 0x812
> | b43-phy0: Found PHY: Analog 9, Type 7 (HT), Revision 1
> | b43-phy0: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
> | b43-phy0 warning: 5 GHz band is unsupported on this PHY
> | b43-phy1: Broadcom 43431 WLAN found (core revision 29)
> | bcma-pci-bridge 0001:01:00.0: bus2: Switched to core: 0x812
> | b43-phy1: Found PHY: Analog 9, Type 7 (HT), Revision 1
> | b43-phy1: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
> | b43-phy1 warning: 5 GHz band is unsupported on this PHY
> | b43-phy2: Broadcom 43228 WLAN found (core revision 30)
> | bcma-pci-bridge 0002:01:00.0: bus3: Switched to core: 0x812
> | b43-phy2: Found PHY: Analog 9, Type 4 (N), Revision 16
> | b43-phy2: Found Radio: Manuf 0x17F, ID 0x2057, Revision 9, Version 1
> | Broadcom 43xx driver loaded [ Features: NL ]
> 
> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
> ---
> 
> |WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> |#89:
> |new file mode 100644
> 
> MAINTAINERS has:
> 
> >BROADCOM BCM5301X ARM ARCHITECTURE
> >[...]
> >F:      arch/arm/boot/dts/bcm5301*
> 
> |WARNING: DT compatible string "atmel,24c64" appears un-documented \
> |-- check ./Documentation/devicetree/bindings/
> |#245: FILE: arch/arm/boot/dts/bcm53015-meraki-mr26.dts:152:
> |+            compatible = "atmel,24c64";
> 
> weird, it should match what is in:
> Documentation/devicetree/bindings/eeprom/at24.yaml

This checkpatch check is a hack dating back to before we had schemas. It 
just greps the tree for the compatible string, but that doesn't work 
since it's a pattern now. 

What you should pay attention to is 'make dtbs_check' for this dts file 
though that is still pretty noisy for existing platforms. It will be 
accurate for what's not documented with a schema.

I haven't removed the checkpatch check because I imagine folks run 
checkpatch, but not schema checks still, and the check also looks at .c 
files which I don't have a solution for. What I want to do is extract 
all struct of_device_id instances and compare them against all schema 
compatibles. I'm not sure how to do that exactly. Use the DWARF info to 
get all the structs perhaps. Another way is using the modinfo, but not 
everything is a module.

> ---
>  arch/arm/boot/dts/Makefile                 |   1 +
>  arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 166 +++++++++++++++++++++
>  2 files changed, 167 insertions(+)
>  create mode 100644 arch/arm/boot/dts/bcm53015-meraki-mr26.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 184899808ee7..9ad78c358330 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -135,6 +135,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
>  	bcm47094-luxul-xwr-3150-v1.dtb \
>  	bcm47094-netgear-r8500.dtb \
>  	bcm47094-phicomm-k3.dtb \
> +	bcm53015-meraki-mr26.dtb \
>  	bcm53016-meraki-mr32.dtb \
>  	bcm94708.dtb \
>  	bcm94709.dtb \
> diff --git a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
> new file mode 100644
> index 000000000000..597d36945756
> --- /dev/null
> +++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
> @@ -0,0 +1,166 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Broadcom BCM470X / BCM5301X ARM platform code.
> + * DTS for Meraki MR26 / Codename: Venom
> + *
> + * Copyright (C) 2022 Christian Lamparter <chunkeey@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "bcm4708.dtsi"
> +#include "bcm5301x-nand-cs0-bch8.dtsi"
> +#include <dt-bindings/leds/common.h>
> +
> +/ {
> +	compatible = "meraki,mr26", "brcm,bcm53015", "brcm,bcm4708";
> +	model = "Meraki MR26";
> +
> +	memory@0 {
> +		reg = <0x00000000 0x08000000>;
> +		device_type = "memory";
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led-0 {
> +			function = LED_FUNCTION_FAULT;
> +			color = <LED_COLOR_ID_AMBER>;
> +			gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
> +			panic-indicator;
> +		};
> +		led-1 {
> +			function = LED_FUNCTION_INDICATOR;
> +			color = <LED_COLOR_ID_WHITE>;
> +			gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		restart {

key-restart

I think, there's a series under review to standardize the prefix.

> +			label = "Reset";
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +};
> +
> +&uart0 {
> +	clock-frequency = <50000000>;
> +	/delete-property/ clocks;
> +};
> +
> +&uart1 {
> +	status = "disabled";
> +};
> +
> +&gmac0 {
> +	status = "okay";
> +};
> +
> +&gmac1 {
> +	status = "disabled";
> +};
> +&gmac2 {
> +	status = "disabled";
> +};
> +&gmac3 {
> +	status = "disabled";
> +};
> +
> +&nandcs {
> +	nand-ecc-algo = "hw";
> +
> +	partitions {
> +		compatible = "fixed-partitions";
> +		#address-cells = <0x1>;
> +		#size-cells = <0x1>;
> +
> +		partition@0 {
> +			label = "u-boot";
> +			reg = <0x0 0x200000>;
> +			read-only;
> +		};
> +
> +		partition@200000 {
> +			label = "u-boot-env";
> +			reg = <0x200000 0x200000>;
> +			/* empty */
> +		};
> +
> +		partition@400000 {
> +			label = "u-boot-backup";
> +			reg = <0x400000 0x200000>;
> +			/* empty */
> +		};
> +
> +		partition@600000 {
> +			label = "u-boot-env-backup";
> +			reg = <0x600000 0x200000>;
> +			/* empty */
> +		};
> +
> +		partition@800000 {
> +			label = "ubi";
> +			reg = <0x800000 0x7780000>;
> +		};
> +	};
> +};
> +
> +&srab {
> +	status = "okay";
> +
> +	ports {
> +		port@0 {
> +			reg = <0>;
> +			label = "poe";
> +		};
> +
> +		port@5 {
> +			reg = <5>;
> +			label = "cpu";
> +			ethernet = <&gmac0>;
> +
> +			fixed-link {
> +				speed = <1000>;
> +				duplex-full;
> +			};
> +		};
> +	};
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinmux_i2c>;
> +
> +	clock-frequency = <100000>;
> +
> +	ina219@40 {
> +		compatible = "ti,ina219"; /* PoE power */
> +		reg = <0x40>;
> +		shunt-resistor = <60000>; /* = 60 mOhms */
> +	};
> +
> +	eeprom@56 {
> +		compatible = "atmel,24c64";
> +		reg = <0x56>;
> +		pagesize = <32>;
> +		read-only;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		/* it's empty */
> +	};
> +};
> +
> +&thermal {
> +	status = "disabled";
> +	/* does not work, reads 418 degree Celsius */
> +};
> -- 
> 2.36.1
> 
>
Florian Fainelli June 17, 2022, 9:52 p.m. UTC | #2
On 6/16/22 10:30, Rob Herring wrote:
> On Sat, Jun 11, 2022 at 06:59:48PM +0200, Christian Lamparter wrote:
>> Meraki MR26 is an EOL wireless access point featuring a
>> PoE ethernet port and two dual-band 3x3 MIMO 802.11n
>> radios and 1x1 dual-band WIFI dedicated to scanning.
>>
>> Thank you Amir for the unit and PSU.
>>
>> Hardware info:
>> SOC   : Broadcom BCM53015A1KFEBG (dual-core Cortex-A9 CPU at 800 MHz)
>> RAM   : H5TQ1G63EFR, SK hynix Inc. 1Gb DDR3 SDRAM = 128 MiB
>> NAND  : S34ML01G100TF100, S34ML01G1 1 Gb Spansion SLC NAND Flash = 128 MiB
>> ETH   : 1GBit Ethernet Port - PoE (TPS23754 PoE Interface)
>>
>> WIFI0 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
>> WIFI1 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
>> WIFI2 : Broadcom BCM43428               802.11 abgn (1x1:1)
>> BUTTON: one reset button
>> LEDS  : one amber (fault), one white (indicator) LED, separate RGB-LED.
>> MISC  : Atmel AT24C64 8KiB EEPROM i2c
>>        : Ti INA219 26V, 12-bit, i2c output current/voltage/power monitor
>>
>> 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 (next to J3, has the pin 1 indicator), RX, TX, GND.
>>
>> Odd stuff:
>>
>> - uboot does not support lzma compression, but gzip'd uImage/DTB work.
>> - uboot claims to support FIT, but fails to pass the DTB to the kernel.
>>    Appending the dtb after the kernel image works.
>> - RGB-controller is supported through an external userspace program.
>> - The ubi partition contains a "board-config" volume. It stores the
>>    MAC Address (0x66 in binary) and Serial No. (0x7c alpha-numerical).
>> - SoC's temperature sensor always reports that it is on fire.
>>    This causes the system to immediately shutdown! Looking at reported
>>    "418 degree Celsius" suggests that this sensor is not working.
>>
>> WIFI:
>> b43 is able to initialize all three WIFIs @ 802.11bg.
>> | b43-phy0: Broadcom 43431 WLAN found (core revision 29)
>> | bcma-pci-bridge 0000:01:00.0: bus1: Switched to core: 0x812
>> | b43-phy0: Found PHY: Analog 9, Type 7 (HT), Revision 1
>> | b43-phy0: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
>> | b43-phy0 warning: 5 GHz band is unsupported on this PHY
>> | b43-phy1: Broadcom 43431 WLAN found (core revision 29)
>> | bcma-pci-bridge 0001:01:00.0: bus2: Switched to core: 0x812
>> | b43-phy1: Found PHY: Analog 9, Type 7 (HT), Revision 1
>> | b43-phy1: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
>> | b43-phy1 warning: 5 GHz band is unsupported on this PHY
>> | b43-phy2: Broadcom 43228 WLAN found (core revision 30)
>> | bcma-pci-bridge 0002:01:00.0: bus3: Switched to core: 0x812
>> | b43-phy2: Found PHY: Analog 9, Type 4 (N), Revision 16
>> | b43-phy2: Found Radio: Manuf 0x17F, ID 0x2057, Revision 9, Version 1
>> | Broadcom 43xx driver loaded [ Features: NL ]
>>
>> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
>> ---
>>
>> |WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
>> |#89:
>> |new file mode 100644
>>
>> MAINTAINERS has:
>>
>>> BROADCOM BCM5301X ARM ARCHITECTURE
>>> [...]
>>> F:      arch/arm/boot/dts/bcm5301*
>>
>> |WARNING: DT compatible string "atmel,24c64" appears un-documented \
>> |-- check ./Documentation/devicetree/bindings/
>> |#245: FILE: arch/arm/boot/dts/bcm53015-meraki-mr26.dts:152:
>> |+            compatible = "atmel,24c64";
>>
>> weird, it should match what is in:
>> Documentation/devicetree/bindings/eeprom/at24.yaml
> 
> This checkpatch check is a hack dating back to before we had schemas. It
> just greps the tree for the compatible string, but that doesn't work
> since it's a pattern now.
> 
> What you should pay attention to is 'make dtbs_check' for this dts file
> though that is still pretty noisy for existing platforms. It will be
> accurate for what's not documented with a schema.
> 
> I haven't removed the checkpatch check because I imagine folks run
> checkpatch, but not schema checks still, and the check also looks at .c
> files which I don't have a solution for. What I want to do is extract
> all struct of_device_id instances and compare them against all schema
> compatibles. I'm not sure how to do that exactly. Use the DWARF info to
> get all the structs perhaps. Another way is using the modinfo, but not
> everything is a module.

Christian, if you can respin quickly addressing Rob's feedback I can 
take these patches for 5.20, thanks!
Christian Lamparter June 17, 2022, 10:20 p.m. UTC | #3
On 17/06/2022 23:52, Florian Fainelli wrote:
> On 6/16/22 10:30, Rob Herring wrote:
>> On Sat, Jun 11, 2022 at 06:59:48PM +0200, Christian Lamparter wrote:
>>> Meraki MR26 is an EOL wireless access point featuring a
>>> PoE ethernet port and two dual-band 3x3 MIMO 802.11n
>>> radios and 1x1 dual-band WIFI dedicated to scanning.
>>>
>>> Thank you Amir for the unit and PSU.
>>>
>>> Hardware info:
>>> SOC   : Broadcom BCM53015A1KFEBG (dual-core Cortex-A9 CPU at 800 MHz)
>>> RAM   : H5TQ1G63EFR, SK hynix Inc. 1Gb DDR3 SDRAM = 128 MiB
>>> NAND  : S34ML01G100TF100, S34ML01G1 1 Gb Spansion SLC NAND Flash = 128 MiB
>>> ETH   : 1GBit Ethernet Port - PoE (TPS23754 PoE Interface)
>>>
>>> WIFI0 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
>>> WIFI1 : Broadcom BCM43431KMLG, BCM43431 802.11 abgn (3x3:3)
>>> WIFI2 : Broadcom BCM43428               802.11 abgn (1x1:1)
>>> BUTTON: one reset button
>>> LEDS  : one amber (fault), one white (indicator) LED, separate RGB-LED.
>>> MISC  : Atmel AT24C64 8KiB EEPROM i2c
>>>        : Ti INA219 26V, 12-bit, i2c output current/voltage/power monitor
>>>
>>> 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 (next to J3, has the pin 1 indicator), RX, TX, GND.
>>>
>>> Odd stuff:
>>>
>>> - uboot does not support lzma compression, but gzip'd uImage/DTB work.
>>> - uboot claims to support FIT, but fails to pass the DTB to the kernel.
>>>    Appending the dtb after the kernel image works.
>>> - RGB-controller is supported through an external userspace program.
>>> - The ubi partition contains a "board-config" volume. It stores the
>>>    MAC Address (0x66 in binary) and Serial No. (0x7c alpha-numerical).
>>> - SoC's temperature sensor always reports that it is on fire.
>>>    This causes the system to immediately shutdown! Looking at reported
>>>    "418 degree Celsius" suggests that this sensor is not working.
>>>
>>> WIFI:
>>> b43 is able to initialize all three WIFIs @ 802.11bg.
>>> | b43-phy0: Broadcom 43431 WLAN found (core revision 29)
>>> | bcma-pci-bridge 0000:01:00.0: bus1: Switched to core: 0x812
>>> | b43-phy0: Found PHY: Analog 9, Type 7 (HT), Revision 1
>>> | b43-phy0: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
>>> | b43-phy0 warning: 5 GHz band is unsupported on this PHY
>>> | b43-phy1: Broadcom 43431 WLAN found (core revision 29)
>>> | bcma-pci-bridge 0001:01:00.0: bus2: Switched to core: 0x812
>>> | b43-phy1: Found PHY: Analog 9, Type 7 (HT), Revision 1
>>> | b43-phy1: Found Radio: Manuf 0x17F, ID 0x2059, Revision 0, Version 1
>>> | b43-phy1 warning: 5 GHz band is unsupported on this PHY
>>> | b43-phy2: Broadcom 43228 WLAN found (core revision 30)
>>> | bcma-pci-bridge 0002:01:00.0: bus3: Switched to core: 0x812
>>> | b43-phy2: Found PHY: Analog 9, Type 4 (N), Revision 16
>>> | b43-phy2: Found Radio: Manuf 0x17F, ID 0x2057, Revision 9, Version 1
>>> | Broadcom 43xx driver loaded [ Features: NL ]
>>>
>>> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
>>> ---
>>>
>>> |WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
>>> |#89:
>>> |new file mode 100644
>>>
>>> MAINTAINERS has:
>>>
>>>> BROADCOM BCM5301X ARM ARCHITECTURE
>>>> [...]
>>>> F:      arch/arm/boot/dts/bcm5301*
>>>
>>> |WARNING: DT compatible string "atmel,24c64" appears un-documented \
>>> |-- check ./Documentation/devicetree/bindings/
>>> |#245: FILE: arch/arm/boot/dts/bcm53015-meraki-mr26.dts:152:
>>> |+            compatible = "atmel,24c64";
>>>
>>> weird, it should match what is in:
>>> Documentation/devicetree/bindings/eeprom/at24.yaml
>>
>> This checkpatch check is a hack dating back to before we had schemas. It
>> just greps the tree for the compatible string, but that doesn't work
>> since it's a pattern now.
>>
>> What you should pay attention to is 'make dtbs_check' for this dts file
>> though that is still pretty noisy for existing platforms. It will be
>> accurate for what's not documented with a schema.
>>
>> I haven't removed the checkpatch check because I imagine folks run
>> checkpatch, but not schema checks still, and the check also looks at .c
>> files which I don't have a solution for. What I want to do is extract
>> all struct of_device_id instances and compare them against all schema
>> compatibles. I'm not sure how to do that exactly. Use the DWARF info to
>> get all the structs perhaps. Another way is using the modinfo, but not
>> everything is a module.
> 
> Christian, if you can respin quickly addressing Rob's feedback I can take these patches for 5.20, thanks!

The key-restart? yes, I've sent v2. Thank you!

But getting "dtbs_check" to be less noisy will require lots of work.
I see what I can deliver though :).

Regards,
Christian
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 184899808ee7..9ad78c358330 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -135,6 +135,7 @@  dtb-$(CONFIG_ARCH_BCM_5301X) += \
 	bcm47094-luxul-xwr-3150-v1.dtb \
 	bcm47094-netgear-r8500.dtb \
 	bcm47094-phicomm-k3.dtb \
+	bcm53015-meraki-mr26.dtb \
 	bcm53016-meraki-mr32.dtb \
 	bcm94708.dtb \
 	bcm94709.dtb \
diff --git a/arch/arm/boot/dts/bcm53015-meraki-mr26.dts b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
new file mode 100644
index 000000000000..597d36945756
--- /dev/null
+++ b/arch/arm/boot/dts/bcm53015-meraki-mr26.dts
@@ -0,0 +1,166 @@ 
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Broadcom BCM470X / BCM5301X ARM platform code.
+ * DTS for Meraki MR26 / Codename: Venom
+ *
+ * Copyright (C) 2022 Christian Lamparter <chunkeey@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm4708.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+	compatible = "meraki,mr26", "brcm,bcm53015", "brcm,bcm4708";
+	model = "Meraki MR26";
+
+	memory@0 {
+		reg = <0x00000000 0x08000000>;
+		device_type = "memory";
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led-0 {
+			function = LED_FUNCTION_FAULT;
+			color = <LED_COLOR_ID_AMBER>;
+			gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+			panic-indicator;
+		};
+		led-1 {
+			function = LED_FUNCTION_INDICATOR;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		restart {
+			label = "Reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&uart0 {
+	clock-frequency = <50000000>;
+	/delete-property/ clocks;
+};
+
+&uart1 {
+	status = "disabled";
+};
+
+&gmac0 {
+	status = "okay";
+};
+
+&gmac1 {
+	status = "disabled";
+};
+&gmac2 {
+	status = "disabled";
+};
+&gmac3 {
+	status = "disabled";
+};
+
+&nandcs {
+	nand-ecc-algo = "hw";
+
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <0x1>;
+		#size-cells = <0x1>;
+
+		partition@0 {
+			label = "u-boot";
+			reg = <0x0 0x200000>;
+			read-only;
+		};
+
+		partition@200000 {
+			label = "u-boot-env";
+			reg = <0x200000 0x200000>;
+			/* empty */
+		};
+
+		partition@400000 {
+			label = "u-boot-backup";
+			reg = <0x400000 0x200000>;
+			/* empty */
+		};
+
+		partition@600000 {
+			label = "u-boot-env-backup";
+			reg = <0x600000 0x200000>;
+			/* empty */
+		};
+
+		partition@800000 {
+			label = "ubi";
+			reg = <0x800000 0x7780000>;
+		};
+	};
+};
+
+&srab {
+	status = "okay";
+
+	ports {
+		port@0 {
+			reg = <0>;
+			label = "poe";
+		};
+
+		port@5 {
+			reg = <5>;
+			label = "cpu";
+			ethernet = <&gmac0>;
+
+			fixed-link {
+				speed = <1000>;
+				duplex-full;
+			};
+		};
+	};
+};
+
+&i2c0 {
+	status = "okay";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinmux_i2c>;
+
+	clock-frequency = <100000>;
+
+	ina219@40 {
+		compatible = "ti,ina219"; /* PoE power */
+		reg = <0x40>;
+		shunt-resistor = <60000>; /* = 60 mOhms */
+	};
+
+	eeprom@56 {
+		compatible = "atmel,24c64";
+		reg = <0x56>;
+		pagesize = <32>;
+		read-only;
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		/* it's empty */
+	};
+};
+
+&thermal {
+	status = "disabled";
+	/* does not work, reads 418 degree Celsius */
+};