bcm53xx: switch to simpler devm_gpiod_get in USB driver
[openwrt.git] / target / linux / bcm53xx / patches-4.1 / 064-ARM-BCM5301X-add-NAND-flash-chip-description.patch
1 From 9faa5960eef3204cae6637b530f5e23e53b5a9ef Mon Sep 17 00:00:00 2001
2 From: Hauke Mehrtens <hauke@hauke-m.de>
3 Date: Fri, 29 May 2015 23:39:47 +0200
4 Subject: [PATCH] ARM: BCM5301X: add NAND flash chip description
5
6 This adds the NAND flash chip description for a standard chip found
7 connected to this SoC. This makes use of generic Broadcom NAND driver
8 with the iProc interface.
9
10 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
11 Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
12 ---
13  arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts        |  1 +
14  arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts        |  1 +
15  arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts  |  1 +
16  arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts       |  9 +++-----
17  arch/arm/boot/dts/bcm4708-netgear-r6250.dts        |  1 +
18  arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts     |  1 +
19  arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts      |  1 +
20  arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts        |  1 +
21  arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts |  1 +
22  arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts  |  1 +
23  arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts  |  1 +
24  arch/arm/boot/dts/bcm4709-netgear-r8000.dts        |  1 +
25  arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi      | 24 ++++++++++++++++++++++
26  arch/arm/boot/dts/bcm5301x.dtsi                    | 12 +++++++++++
27  14 files changed, 50 insertions(+), 6 deletions(-)
28  create mode 100644 arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
29
30 --- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
31 +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
32 @@ -10,6 +10,7 @@
33  /dts-v1/;
34  
35  #include "bcm4708.dtsi"
36 +#include "bcm5301x-nand-cs0-bch8.dtsi"
37  
38  / {
39         compatible = "asus,rt-ac56u", "brcm,bcm4708";
40 --- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
41 +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
42 @@ -10,6 +10,7 @@
43  /dts-v1/;
44  
45  #include "bcm4708.dtsi"
46 +#include "bcm5301x-nand-cs0-bch8.dtsi"
47  
48  / {
49         compatible = "asus,rt-ac68u", "brcm,bcm4708";
50 --- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
51 +++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
52 @@ -10,6 +10,7 @@
53  /dts-v1/;
54  
55  #include "bcm4708.dtsi"
56 +#include "bcm5301x-nand-cs0-bch8.dtsi"
57  
58  / {
59         compatible = "buffalo,wzr-1750dhp", "brcm,bcm4708";
60 --- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
61 +++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
62 @@ -10,6 +10,7 @@
63  /dts-v1/;
64  
65  #include "bcm4708.dtsi"
66 +#include "bcm5301x-nand-cs0-bch8.dtsi"
67  
68  / {
69         compatible = "luxul,xwc-1000", "brcm,bcm4708";
70 @@ -23,12 +24,8 @@
71                 reg = <0x00000000 0x08000000>;
72         };
73  
74 -       axi@18000000 {
75 -               nand@28000 {
76 -                       reg = <0x00028000 0x1000>;
77 -                       #address-cells = <1>;
78 -                       #size-cells = <1>;
79 -
80 +       nand: nand@18028000 {
81 +               nandcs@0 {
82                         partition@0 {
83                                 label = "ubi";
84                                 reg = <0x00000000 0x08000000>;
85 --- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
86 +++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
87 @@ -10,6 +10,7 @@
88  /dts-v1/;
89  
90  #include "bcm4708.dtsi"
91 +#include "bcm5301x-nand-cs0-bch8.dtsi"
92  
93  / {
94         compatible = "netgear,r6250v1", "brcm,bcm4708";
95 --- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
96 +++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
97 @@ -10,6 +10,7 @@
98  /dts-v1/;
99  
100  #include "bcm4708.dtsi"
101 +#include "bcm5301x-nand-cs0-bch8.dtsi"
102  
103  / {
104         compatible = "netgear,r6300v2", "brcm,bcm4708";
105 --- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
106 +++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
107 @@ -10,6 +10,7 @@
108  /dts-v1/;
109  
110  #include "bcm4708.dtsi"
111 +#include "bcm5301x-nand-cs0-bch8.dtsi"
112  
113  / {
114         compatible = "smartrg,sr400ac", "brcm,bcm4708";
115 --- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
116 +++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
117 @@ -10,6 +10,7 @@
118  /dts-v1/;
119  
120  #include "bcm47081.dtsi"
121 +#include "bcm5301x-nand-cs0-bch8.dtsi"
122  
123  / {
124         compatible = "asus,rt-n18u", "brcm,bcm47081", "brcm,bcm4708";
125 --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
126 +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
127 @@ -10,6 +10,7 @@
128  /dts-v1/;
129  
130  #include "bcm47081.dtsi"
131 +#include "bcm5301x-nand-cs0-bch8.dtsi"
132  
133  / {
134         compatible = "buffalo,wzr-600dhp2", "brcm,bcm47081", "brcm,bcm4708";
135 --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
136 +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
137 @@ -10,6 +10,7 @@
138  /dts-v1/;
139  
140  #include "bcm47081.dtsi"
141 +#include "bcm5301x-nand-cs0-bch8.dtsi"
142  
143  / {
144         compatible = "buffalo,wzr-900dhp", "brcm,bcm47081", "brcm,bcm4708";
145 --- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
146 +++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
147 @@ -10,6 +10,7 @@
148  /dts-v1/;
149  
150  #include "bcm4708.dtsi"
151 +#include "bcm5301x-nand-cs0-bch8.dtsi"
152  
153  / {
154         compatible = "buffalo,wxr-1900dhp", "brcm,bcm4709", "brcm,bcm4708";
155 --- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
156 +++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
157 @@ -10,6 +10,7 @@
158  /dts-v1/;
159  
160  #include "bcm4708.dtsi"
161 +#include "bcm5301x-nand-cs0-bch8.dtsi"
162  
163  / {
164         compatible = "netgear,r8000", "brcm,bcm4709", "brcm,bcm4708";
165 --- /dev/null
166 +++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
167 @@ -0,0 +1,24 @@
168 +/*
169 + * Broadcom BCM470X / BCM5301X Nand chip defaults.
170 + *
171 + * This should be included if the NAND controller is on chip select 0
172 + * and uses 8 bit ECC.
173 + *
174 + * Copyright (C) 2015 Hauke Mehrtens <hauke@hauke-m.de>
175 + *
176 + * Licensed under the GNU/GPL. See COPYING for details.
177 + */
178 +
179 +/ {
180 +       nand@18028000 {
181 +               nandcs@0 {
182 +                       compatible = "brcm,nandcs";
183 +                       reg = <0>;
184 +                       #address-cells = <1>;
185 +                       #size-cells = <1>;
186 +
187 +                       nand-ecc-strength = <8>;
188 +                       nand-ecc-step-size = <512>;
189 +               };
190 +       };
191 +};
192 --- a/arch/arm/boot/dts/bcm5301x.dtsi
193 +++ b/arch/arm/boot/dts/bcm5301x.dtsi
194 @@ -143,4 +143,16 @@
195                         #gpio-cells = <2>;
196                 };
197         };
198 +
199 +       nand: nand@18028000 {
200 +               compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
201 +               reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
202 +               reg-names = "nand", "iproc-idm", "iproc-ext";
203 +               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
204 +
205 +               #address-cells = <1>;
206 +               #size-cells = <0>;
207 +
208 +               brcm,nand-has-wp;
209 +       };
210  };