From cb9a896a799393b3cb5947bef3c95eb5ffb44776 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 10 Oct 2019 09:08:47 +0100 Subject: [PATCH] overlays: Add w5500 overlay Add an overlay to configure the Wiznet W5500 Ethernet controller on SPI0. The 'cs' parameter chooses the Chip Select (default 0). See: https://github.com/raspberrypi/linux/issues/3276 Signed-off-by: Phil Elwell --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 10 ++++ arch/arm/boot/dts/overlays/w5500-overlay.dts | 63 ++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/w5500-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -183,6 +183,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ vga666.dtbo \ w1-gpio.dtbo \ w1-gpio-pullup.dtbo \ + w5500.dtbo \ wittypi.dtbo targets += dtbs dtbs_install --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -2538,6 +2538,16 @@ Params: gpiopin GPIO for pullup Now enabled by default (ignored) +Name: w5500 +Info: Overlay for the Wiznet W5500 Ethernet Controller on SPI0 +Load: dtoverlay=w5500,= +Params: int_pin GPIO used for INT (default 25) + + speed SPI bus speed (default 30000000) + + cs SPI bus Chip Select (default 0) + + Name: wittypi Info: Configures the wittypi RTC module. Load: dtoverlay=wittypi,= --- /dev/null +++ b/arch/arm/boot/dts/overlays/w5500-overlay.dts @@ -0,0 +1,63 @@ +// Overlay for the Wiznet w5500 Ethernet Controller +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835"; + + fragment@0 { + target = <&spidev0>; + __overlay__ { + status = "disabled"; + }; + }; + + fragment@1 { + target = <&spidev1>; + __dormant__ { + status = "disabled"; + }; + }; + + fragment@2 { + target = <&spi0>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; + + status = "okay"; + + eth1: w5500@0{ + compatible = "wiznet,w5500"; + reg = <0>; /* CE0 */ + pinctrl-names = "default"; + pinctrl-0 = <ð1_pins>; + interrupt-parent = <&gpio>; + interrupts = <25 0x8>; + spi-max-frequency = <30000000>; +// local-mac-address = [aa bb cc dd ee ff]; + status = "okay"; + }; + }; + }; + + fragment@3 { + target = <&gpio>; + __overlay__ { + eth1_pins: eth1_pins { + brcm,pins = <25>; + brcm,function = <0>; /* in */ + brcm,pull = <0>; /* none */ + }; + }; + }; + + __overrides__ { + int_pin = <ð1>, "interrupts:0", + <ð1_pins>, "brcm,pins:0"; + speed = <ð1>, "spi-max-frequency:0"; + cs = <ð1>, "reg:0", + <0>, "!0=1"; + }; +};