brcm2708: update linux 4.4 patches to latest version
[lede.git] / target / linux / brcm2708 / patches-4.4 / 0556-BCM270X_DT-Add-overlay-for-enc28j60-on-SPI2.patch
1 From ea006f68522d82b294094fd29585b16290758d29 Mon Sep 17 00:00:00 2001
2 From: Alan Yiding Wang <y2366wan@uwaterloo.ca>
3 Date: Sat, 3 Dec 2016 23:22:02 -0500
4 Subject: [PATCH] BCM270X_DT: Add overlay for enc28j60 on SPI2
5
6 Works on SPI2 for compute module
7 ---
8  arch/arm/boot/dts/overlays/Makefile                |  1 +
9  arch/arm/boot/dts/overlays/README                  | 10 ++++-
10  .../boot/dts/overlays/enc28j60-spi2-overlay.dts    | 47 ++++++++++++++++++++++
11  3 files changed, 57 insertions(+), 1 deletion(-)
12  create mode 100644 arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
13
14 diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
15 index 57d60a4..c4186aa 100644
16 --- a/arch/arm/boot/dts/overlays/Makefile
17 +++ b/arch/arm/boot/dts/overlays/Makefile
18 @@ -28,6 +28,7 @@ dtbo-$(RPI_DT_OVERLAYS) += dpi24.dtbo
19  dtbo-$(RPI_DT_OVERLAYS) += dwc-otg.dtbo
20  dtbo-$(RPI_DT_OVERLAYS) += dwc2.dtbo
21  dtbo-$(RPI_DT_OVERLAYS) += enc28j60.dtbo
22 +dtbo-$(RPI_DT_OVERLAYS) += enc28j60-spi2.dtbo
23  dtbo-$(RPI_DT_OVERLAYS) += gpio-ir.dtbo
24  dtbo-$(RPI_DT_OVERLAYS) += gpio-poweroff.dtbo
25  dtbo-$(RPI_DT_OVERLAYS) += hifiberry-amp.dtbo
26 diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
27 index 35c0cec1..4a77ee6 100644
28 --- a/arch/arm/boot/dts/overlays/README
29 +++ b/arch/arm/boot/dts/overlays/README
30 @@ -344,13 +344,21 @@ Params: dr_mode                 Dual role mode: "host", "peripheral" or "otg"
31  
32  
33  Name:   enc28j60
34 -Info:   Overlay for the Microchip ENC28J60 Ethernet Controller (SPI)
35 +Info:   Overlay for the Microchip ENC28J60 Ethernet Controller on SPI0
36  Load:   dtoverlay=enc28j60,<param>=<val>
37  Params: int_pin                 GPIO used for INT (default 25)
38  
39          speed                   SPI bus speed (default 12000000)
40  
41  
42 +Name:   enc28j60-spi2
43 +Info:   Overlay for the Microchip ENC28J60 Ethernet Controller on SPI2
44 +Load:   dtoverlay=enc28j60-spi2,<param>=<val>
45 +Params: int_pin                 GPIO used for INT (default 39)
46 +
47 +        speed                   SPI bus speed (default 12000000)
48 +
49 +
50  Name:   gpio-ir
51  Info:   Use GPIO pin as rc-core style infrared receiver input. The rc-core-
52          based gpio_ir_recv driver maps received keys directly to a
53 diff --git a/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts b/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
54 new file mode 100644
55 index 0000000..946c9d2
56 --- /dev/null
57 +++ b/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
58 @@ -0,0 +1,47 @@
59 +// Overlay for the Microchip ENC28J60 Ethernet Controller - SPI2 Compute Module
60 +// Interrupt pin: 39
61 +/dts-v1/;
62 +/plugin/;
63 +
64 +/ {
65 +       compatible = "brcm,bcm2708";
66 +
67 +       fragment@0 {
68 +               target = <&spi2>;
69 +               __overlay__ {
70 +                       /* needed to avoid dtc warning */
71 +                       #address-cells = <1>;
72 +                       #size-cells = <0>;
73 +
74 +                       status = "okay";
75 +
76 +                       eth1: enc28j60@0{
77 +                               compatible = "microchip,enc28j60";
78 +                               reg = <0>; /* CE0 */
79 +                               pinctrl-names = "default";
80 +                               pinctrl-0 = <&eth1_pins>;
81 +                               interrupt-parent = <&gpio>;
82 +                               interrupts = <39 0x2>; /* falling edge */
83 +                               spi-max-frequency = <12000000>;
84 +                               status = "okay";
85 +                       };
86 +               };
87 +       };
88 +
89 +       fragment@1 {
90 +               target = <&gpio>;
91 +               __overlay__ {
92 +                       eth1_pins: eth1_pins {
93 +                               brcm,pins = <39>;
94 +                               brcm,function = <0>; /* in */
95 +                               brcm,pull = <0>; /* none */
96 +                       };
97 +               };
98 +       };
99 +
100 +       __overrides__ {
101 +               int_pin = <&eth1>, "interrupts:0",
102 +                         <&eth1_pins>, "brcm,pins:0";
103 +               speed   = <&eth1>, "spi-max-frequency:0";
104 +       };
105 +};
106 -- 
107 2.1.4
108