overlays: Add w5500 overlay
authorPhil Elwell <phil@raspberrypi.org>
Thu, 10 Oct 2019 08:08:47 +0000 (09:08 +0100)
committerPhil Elwell <pelwell@users.noreply.github.com>
Wed, 16 Oct 2019 12:57:33 +0000 (13:57 +0100)
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 <phil@raspberrypi.org>
arch/arm/boot/dts/overlays/Makefile
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/w5500-overlay.dts [new file with mode: 0644]

index 6b4af50..9708804 100644 (file)
@@ -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
index 3bd7d4a..c20d4f8 100644 (file)
@@ -2538,6 +2538,16 @@ Params: gpiopin                 GPIO for I/O (default "4")
         pullup                  Now enabled by default (ignored)
 
 
+Name:   w5500
+Info:   Overlay for the Wiznet W5500 Ethernet Controller on SPI0
+Load:   dtoverlay=w5500,<param>=<val>
+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,<param>=<val>
diff --git a/arch/arm/boot/dts/overlays/w5500-overlay.dts b/arch/arm/boot/dts/overlays/w5500-overlay.dts
new file mode 100644 (file)
index 0000000..4d3e662
--- /dev/null
@@ -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 = <&eth1_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 = <&eth1>, "interrupts:0",
+                         <&eth1_pins>, "brcm,pins:0";
+               speed   = <&eth1>, "spi-max-frequency:0";
+               cs      = <&eth1>, "reg:0",
+                         <0>, "!0=1";
+       };
+};