All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1472569333.5703.24.camel@toradex.com>

diff --git a/a/1.txt b/N1/1.txt
index 704756d..b7d69c4 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,114 +1,202 @@
-T24gV2VkLCAyMDE2LTA4LTI0IGF0IDE1OjM3ICswMjAwLCBNaXJ6YSBLcmFrIHdyb3RlOg0KPiBG
-cm9tOiBNaXJ6YSBLcmFrIDxtaXJ6YS5rcmFrQGdtYWlsLmNvbT4NCj4gDQo+IERvY3VtZW50IHRo
-ZSBkZXZpY2V0cmVlIGJpbmRpbmdzIGZvciB0aGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlDQo+
-IChHTUkpDQo+IGJ1cyBkcml2ZXIgZm91bmQgb24gVGVncmEgU09Dcy4NCj4gDQo+IFNpZ25lZC1v
-ZmYtYnk6IE1pcnphIEtyYWsgPG1pcnphLmtyYWtAZ21haWwuY29tPg0KPiAtLS0NCj4gQ2hhbmdl
-cyBpbiB2MjoNCj4gLSBVcGRhdGVkIGV4YW1wbGVzIGFuZCBzb21lIGluZm9ybWF0aW9uIGJhc2Vk
-IG9uIGNvbW1lbnRzIGZyb20gSm9uDQo+IEh1bnRlci4NCj4gDQo+IMKgLi4uL2RldmljZXRyZWUv
-YmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQgfCAxMzINCj4gKysrKysrKysrKysr
-KysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspDQo+IMKgY3Jl
-YXRlIG1vZGUgMTAwNjQ0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMv
-bnZpZGlhLHRlZ3JhMjAtZ21pLnR4dA0KPiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v
-ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvbnZpZGlhLHRlZ3JhMjAtDQo+IGdtaS50eHQgYi9Eb2N1
-bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLQ0KPiBnbWku
-dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjhjMWUxNWYNCj4g
-LS0tIC9kZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv
-YnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQNCj4gQEAgLTAsMCArMSwxMzIgQEANCj4gK0Rldmlj
-ZSB0cmVlIGJpbmRpbmdzIGZvciBOVklESUEgVGVncmEgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNl
-IGJ1cw0KPiArDQo+ICtUaGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlIGJ1cyBlbmFibGVzIG1l
-bW9yeSB0cmFuc2ZlcnMgYmV0d2Vlbg0KPiBpbnRlcm5hbCBhbmQNCj4gK2V4dGVybmFsIG1lbW9y
-eS4gQ2FuIGJlIHVzZWQgdG8gYXR0YWNoIHZhcmlvdXMgaGlnaCBzcGVlZCBkZXZpY2VzDQo+IHN1
-Y2ggYXMNCj4gK3N5bmNocm9ub3VzL2FzeW5jaHJvbm91cyBOT1IsIEZQR0EsIFVBUlRTIGFuZCBt
-b3JlLg0KPiArDQo+ICtUaGUgYWN0dWFsIGRldmljZXMgYXJlIGluc3RhbnRpYXRlZCBmcm9tIHRo
-ZSBjaGlsZCBub2RlcyBvZiBhIEdNSQ0KPiBub2RlLg0KPiArDQo+ICtSZXF1aXJlZCBwcm9wZXJ0
-aWVzOg0KPiArIC0gY29tcGF0aWJsZSA6IFNob3VsZCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93
-aW5nOg0KPiArwqDCoMKgwqDCoMKgwqDCoEZvciBUZWdyYTIwIG11c3QgY29udGFpbiAibnZpZGlh
-LHRlZ3JhMjAtZ21pIi4NCj4gK8KgwqDCoMKgwqDCoMKgwqBGb3IgVGVncmEzMCBtdXN0IGNvbnRh
-aW4gIm52aWRpYSx0ZWdyYTMwLWdtaSIuDQo+ICsgLSByZWc6IFNob3VsZCBjb250YWluIEdNSSBj
-b250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLg0KPiArIC0gY2xvY2tzOiBN
-dXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuDQo+ICsg
-LSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczogImdtaSIN
-Cj4gKyAtIHJlc2V0cyA6IE11c3QgY29udGFpbiBhbiBlbnRyeSBmb3IgZWFjaCBlbnRyeSBpbiBy
-ZXNldC1uYW1lcy4NCj4gKyAtIHJlc2V0LW5hbWVzIDogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dp
-bmcgZW50cmllczogImdtaSINCj4gKyAtICNhZGRyZXNzLWNlbGxzOiBUaGUgbnVtYmVyIG9mIGNl
-bGxzIHVzZWQgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQo+IGJhc2UNCj4gK8KgwqDCoGFkZHJlc3Nl
-cyBpbiB0aGUgR01JIGFkZHJlc3Mgc3BhY2UuIFNob3VsZCBiZSAxLg0KPiArIC0gI3NpemUtY2Vs
-bHM6IFRoZSBudW1iZXIgb2YgY2VsbHMgdXNlZCB0byByZXByZXNlbnQgdGhlIHNpemUgb2YgYW4N
-Cj4gYWRkcmVzcw0KPiArwqDCoMKgcmFuZ2UgaW4gdGhlIEdNSSBhZGRyZXNzIHNwYWNlLiBTaG91
-bGQgYmUgMS4NCj4gKyAtIHJhbmdlczogTXVzdCBiZSBzZXQgdXAgdG8gcmVmbGVjdCB0aGUgbWVt
-b3J5IGxheW91dCB3aXRoIHRocmVlDQo+IGludGVnZXIgdmFsdWVzDQo+ICvCoMKgwqBmb3IgZWFj
-aCBjaGlwLXNlbGVjdCBsaW5lIGluIHVzZSAob25seSBvbmUgZW50cnkgaXMgc3VwcG9ydGVkLA0K
-PiBzZWUgYmVsb3cNCj4gK8KgwqDCoGNvbW1lbnRzKToNCj4gK8KgwqDCoDxjcy1udW1iZXI+IDxw
-aHlzaWNhbCBhZGRyZXNzIG9mIG1hcHBpbmc+IDxzaXplPg0KPiArDQo+ICtOb3RlIHRoYXQgdGhl
-IEdNSSBjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgYW55IGludGVybmFsIGNoaXAtc2VsZWN0DQo+
-IGFkZHJlc3MNCj4gK2RlY29kaW5nLCBiZWNhdXNlIG9mIHRoYXQgY2hpcC1zZWxlY3RzIGVpdGhl
-ciBuZWVkIHRvIGJlIG1hbmFnZWQgdmlhDQo+IHNvZnR3YXJlDQo+ICtvciBieSBlbXBsb3lpbmcg
-ZXh0ZXJuYWwgY2hpcC1zZWxlY3QgZGVjb2RpbmcgbG9naWMuDQo+ICsNCj4gK0lmIGV4dGVybmFs
-IGNoaXAtc2VsZWN0IGxvZ2ljIGlzIHVzZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBkZXZpY2VzIGl0
-DQo+IGlzIGFzc3VtZWQNCj4gK3RoYXQgdGhlIGRldmljZXMgdXNlIHRoZSBzYW1lIHRpbWluZyBh
-bmQgc28gYXJlIHByb2JhYmx5IHRoZSBzYW1lDQo+IHR5cGUuIEl0IGFsc28NCj4gK2Fzc3VtZXMg
-dGhhdCB0aGV5IGNhbiBmaXQgaW4gdGhlIDI1Nk1CIGFkZHJlc3MgcmFuZ2UuIEluIHRoaXMgY2Fz
-ZQ0KPiBvbmx5IG9uZQ0KPiArY2hpbGQgZGV2aWNlIGlzIHN1cHBvcnRlZCB3aGljaCByZXByZXNl
-bnRzIHRoZSBhY3RpdmUgY2hpcC1zZWxlY3QNCj4gbGluZSwgc2VlDQo+ICtleGFtcGxlcyBmb3Ig
-bW9yZSBpbnNpZ2h0Lg0KPiArDQo+ICtSZXF1aXJlZCBjaGlsZCBjcyBub2RlIHByb3BlcnRpZXM6
-DQo+ICsgLSByZWc6IEZpcnN0IGVudHJ5IHNob3VsZCBjb250YWluIHRoZSBhY3RpdmUgY2hpcC1z
-ZWxlY3QgbnVtYmVyDQo+ICsNCj4gK09wdGlvbmFsIGNoaWxkIGNzIG5vZGUgcHJvcGVydGllczoN
-Cj4gKw0KPiArIC0gbnZpZGlhLHNub3ItZGF0YS13aWR0aC0zMmJpdDogVXNlIDMyYml0IGRhdGEt
-YnVzLCBkZWZhdWx0IGlzDQo+IDE2Yml0Lg0KPiArIC0gbnZpZGlhLHNub3ItbXV4LW1vZGU6IEVu
-YWJsZSBhZGRyZXNzL2RhdGEgTVVYIG1vZGUuDQo+ICsgLSBudmlkaWEsc25vci1yZHktYWN0aXZl
-LWJlZm9yZS1kYXRhOiBBc3NlcnQgUkRZIHNpZ25hbCBvbmUgY3ljbGUNCj4gYmVmb3JlIGRhdGEu
-DQo+ICvCoMKgwqBJZiBvbWl0dGVkIGl0IHdpbGwgYmUgYXNzZXJ0ZWQgd2l0aCBkYXRhLg0KPiAr
-IC0gbnZpZGlhLHNub3ItcmR5LWludjogUkRZIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0g
-bnZpZGlhLHNub3ItYWR2LWludjogQURWIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0gbnZp
-ZGlhLHNub3Itb2UtaW52OiBXRS9PRSBzaWduYWwgaXMgYWN0aXZlIGhpZ2gNCj4gKyAtIG52aWRp
-YSxzbm9yLWNzLWludjogQ1Mgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoDQo+ICsNCj4gK8KgwqBOb3Rl
-IHRoYXQgdGhlcmUgaXMgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGltaW5nIHZhbHVl
-cy4NCj4gK8KgwqBGcm9tIFRlZ3JhIFRSTToNCj4gK8KgwqBQcm9ncmFtbWluZyAwIG1lYW5zIDEg
-Y2xvY2sgY3ljbGU6IGFjdHVhbCBjeWNsZSA9IHByb2dyYW1tZWQgY3ljbGUNCj4gKyAxDQo+ICsN
-Cj4gKyAtIG52aWRpYSxzbm9yLW11eGVkLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIE1VWCBhZGRy
-ZXNzL2RhdGENCj4gYXNzZXJ0ZWQgb24gdGhlDQo+ICvCoMKgwqBidXMuIFZhbGlkIHZhbHVlcyBh
-cmUgMC0xNSwgZGVmYXVsdCBpcyAxDQo+ICsgLSBudmlkaWEsc25vci1ob2xkLXdpZHRoOiBOdW1i
-ZXIgb2YgY3ljbGVzIENFIHN0YXlzIGFzc2VydGVkIGFmdGVyDQo+IHRoZQ0KPiArwqDCoMKgZGUt
-YXNzZXJ0aW9uIG9mIFdSX04gKGluIGNhc2Ugb2YgU0xBVkUvTUFTVEVSIFJlcXVlc3QpIG9yIE9F
-X04NCj4gK8KgwqDCoChpbiBjYXNlIG9mIE1BU1RFUiBSZXF1ZXN0KS4gVmFsaWQgdmFsdWVzIGFy
-ZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAtIG52aWRpYSxzbm9yLWFkdi13aWR0aDogTnVtYmVy
-IG9mIGN5Y2xlcyBkdXJpbmcgd2hpY2ggQURWIHN0YXlzDQo+IGFzc2VydGVkLg0KPiArwqDCoMKg
-VmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDEuDQo+ICsgLSBudmlkaWEsc25vci1j
-ZS13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBiZWZvcmUgQ0UgaXMgYXNzZXJ0ZWQuDQo+ICvCoMKg
-wqBWYWxpZCB2YWx1ZXMgYXJlIDAtMTUsIGRlZmF1bHQgaXMgNA0KPiArIC0gbnZpZGlhLHNub3It
-d2Utd2lkdGg6IE51bWJlciBvZiBjeWNsZXMgZHVyaW5nIHdoaWNoIFdFIHN0YXlzDQo+IGFzc2Vy
-dGVkLg0KPiArwqDCoMKgVmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAt
-IG52aWRpYSxzbm9yLW9lLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIGR1cmluZyB3aGljaCBPRSBz
-dGF5cw0KPiBhc3NlcnRlZC4NCj4gK8KgwqDCoFZhbGlkIHZhbHVlcyBhcmUgMC0yNTUsIGRlZmF1
-bHQgaXMgMQ0KPiArIC0gbnZpZGlhLHNub3Itd2FpdC13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBi
-ZWZvcmUgUkVBRFkgaXMNCj4gYXNzZXJ0ZWQuDQo+ICvCoMKgwqBWYWxpZCB2YWx1ZXMgYXJlIDAt
-MjU1LCBkZWZhdWx0IGlzIDMNCj4gKw0KPiArRXhhbXBsZSB3aXRoIHR3byBTSkExMDAwIENBTiBj
-b250cm9sbGVycyBjb25uZWN0ZWQgdG8gdGhlIEdNSSBidXMuDQo+IFdlIHdyYXAgdGhlDQo+ICtj
-b250cm9sbGVycyB3aXRoIGEgc2ltcGxlLWJ1cyBub2RlIHNpbmNlIHRoZXkgYXJlIGFsbCBjb25u
-ZWN0ZWQgdG8NCj4gdGhlIHNhbWUNCj4gK2NoaXAtc2VsZWN0IChDUzQpLCBpbiB0aGlzIGV4YW1w
-bGUgZXh0ZXJuYWwgYWRkcmVzcyBkZWNvZGluZyBpcw0KPiBwcm92aWRlZDoNCj4gKw0KPiArZ21p
-QDcwMDkwMDAwIHsNCg0KSXQncyBhY3R1YWxseSA3MDAwOTAwMC4NCg0KPiArCWNvbXBhdGlibGUg
-PSAibnZpZGlhLHRlZ3JhMjAtZ21pIjsNCj4gKwlyZWcgPSA8MHg3MDAwOTAwMCAweDEwMDA+Ow0K
-PiArCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCWNs
-b2NrcyA9IDwmdGVncmFfY2FyIFRFR1JBMjBfQ0xLX05PUj47DQo+ICsJY2xvY2stbmFtZXMgPSAi
-Z21pIjsNCj4gKwlyZXNldHMgPSA8JnRlZ3JhX2NhciA0Mj47DQo+ICsJcmVzZXQtbmFtZXMgPSAi
-Z21pIjsNCj4gKwlyYW5nZXMgPSA8NCAweDQ4MDAwMDAwIDB4N2ZmZmZmZj47DQo+ICsNCj4gKwlz
-dGF0dXMgPSAiZGlzYWJsZWQiOw0KDQpJIGd1ZXNzIGluIGFuIGV4YW1wbGUgb25lIGNvdWxkIGV2
-ZW4gc2V0IHRoaXMgdG8gb2theS4NCg0KPiArDQo+ICsJYnVzQDQgew0KPiArCQljb21wYXRpYmxl
-ID0gInNpbXBsZS1idXMiOw0KPiArCQlyZWcgPSA8ND47DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0g
-PDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJcmFuZ2VzID0gPDAgNCAweDQwMTAw
-PjsNCj4gKw0KPiArCQludmlkaWEsc25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2
-LWludjsNCj4gKw0KPiArCQljYW5AMCB7DQo+ICsJCQlyZWcgPSA8MCAweDEwMD47DQo+ICsJCQku
-Li4NCj4gKwkJfTsNCj4gKw0KPiArCQljYW5ANDAwMDAgew0KPiArCQkJcmVnID0gPDB4NDAwMDAg
-MHgxMDA+Ow0KPiArCQkJLi4uDQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gK0V4YW1w
-bGUgd2l0aCBvbmUgU0pBMTAwMCBDQU4gY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhlIEdNSSBi
-dXMNCj4gK29uIENTNDoNCj4gKw0KPiArZ21pQDcwMDkwMDAwIHsNCg0KU2FtZSBoZXJlLg0KDQo+
-ICsJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmEyMC1nbWkiOw0KPiArCXJlZyA9IDwweDcwMDA5
-MDAwIDB4MTAwMD47DQo+ICsJI2FkZHJlc3MtY2VsbHMgPSA8MT47DQo+ICsJI3NpemUtY2VsbHMg
-PSA8MT47DQo+ICsJY2xvY2tzID0gPCZ0ZWdyYV9jYXIgVEVHUkEyMF9DTEtfTk9SPjsNCj4gKwlj
-bG9jay1uYW1lcyA9ICJnbWkiOw0KPiArCXJlc2V0cyA9IDwmdGVncmFfY2FyIDQyPjsNCj4gKwly
-ZXNldC1uYW1lcyA9ICJnbWkiOw0KPiArCXJhbmdlcyA9IDw0IDB4NDgwMDAwMDAgMHg3ZmZmZmZm
-PjsNCj4gKw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQoNClNhbWUgaGVyZS4NCg0KPiArDQo+
-ICsJY2FuQDQgew0KPiArCQlyZWcgPSA8NCAweDEwMD47DQo+ICsJCS4uLg0KPiArCQludmlkaWEs
-c25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2LWludjsNCj4gKwl9Ow0KPiArfTsN
-Cj4gLS0NCj4gMi4xLjQ=
+On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote:
+> From: Mirza Krak <mirza.krak@gmail.com>
+> 
+> Document the devicetree bindings for the Generic Memory Interface
+> (GMI)
+> bus driver found on Tegra SOCs.
+> 
+> Signed-off-by: Mirza Krak <mirza.krak@gmail.com>
+> ---
+> Changes in v2:
+> - Updated examples and some information based on comments from Jon
+> Hunter.
+> 
+>  .../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132
+> +++++++++++++++++++++
+>  1 file changed, 132 insertions(+)
+>  create mode 100644
+> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
+> 
+> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20-
+> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20-
+> gmi.txt
+> new file mode 100644
+> index 0000000..8c1e15f
+> --- /dev/null
+> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
+> @@ -0,0 +1,132 @@
+> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus
+> +
+> +The Generic Memory Interface bus enables memory transfers between
+> internal and
+> +external memory. Can be used to attach various high speed devices
+> such as
+> +synchronous/asynchronous NOR, FPGA, UARTS and more.
+> +
+> +The actual devices are instantiated from the child nodes of a GMI
+> node.
+> +
+> +Required properties:
+> + - compatible : Should contain one of the following:
+> +        For Tegra20 must contain "nvidia,tegra20-gmi".
+> +        For Tegra30 must contain "nvidia,tegra30-gmi".
+> + - reg: Should contain GMI controller registers location and length.
+> + - clocks: Must contain an entry for each entry in clock-names.
+> + - clock-names: Must include the following entries: "gmi"
+> + - resets : Must contain an entry for each entry in reset-names.
+> + - reset-names : Must include the following entries: "gmi"
+> + - #address-cells: The number of cells used to represent physical
+> base
+> +   addresses in the GMI address space. Should be 1.
+> + - #size-cells: The number of cells used to represent the size of an
+> address
+> +   range in the GMI address space. Should be 1.
+> + - ranges: Must be set up to reflect the memory layout with three
+> integer values
+> +   for each chip-select line in use (only one entry is supported,
+> see below
+> +   comments):
+> +   <cs-number> <physical address of mapping> <size>
+> +
+> +Note that the GMI controller does not have any internal chip-select
+> address
+> +decoding, because of that chip-selects either need to be managed via
+> software
+> +or by employing external chip-select decoding logic.
+> +
+> +If external chip-select logic is used to support multiple devices it
+> is assumed
+> +that the devices use the same timing and so are probably the same
+> type. It also
+> +assumes that they can fit in the 256MB address range. In this case
+> only one
+> +child device is supported which represents the active chip-select
+> line, see
+> +examples for more insight.
+> +
+> +Required child cs node properties:
+> + - reg: First entry should contain the active chip-select number
+> +
+> +Optional child cs node properties:
+> +
+> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is
+> 16bit.
+> + - nvidia,snor-mux-mode: Enable address/data MUX mode.
+> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle
+> before data.
+> +   If omitted it will be asserted with data.
+> + - nvidia,snor-rdy-inv: RDY signal is active high
+> + - nvidia,snor-adv-inv: ADV signal is active high
+> + - nvidia,snor-oe-inv: WE/OE signal is active high
+> + - nvidia,snor-cs-inv: CS signal is active high
+> +
+> +  Note that there is some special handling for the timing values.
+> +  From Tegra TRM:
+> +  Programming 0 means 1 clock cycle: actual cycle = programmed cycle
+> + 1
+> +
+> + - nvidia,snor-muxed-width: Number of cycles MUX address/data
+> asserted on the
+> +   bus. Valid values are 0-15, default is 1
+> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after
+> the
+> +   de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N
+> +   (in case of MASTER Request). Valid values are 0-15, default is 1
+> + - nvidia,snor-adv-width: Number of cycles during which ADV stays
+> asserted.
+> +   Valid values are 0-15, default is 1.
+> + - nvidia,snor-ce-width: Number of cycles before CE is asserted.
+> +   Valid values are 0-15, default is 4
+> + - nvidia,snor-we-width: Number of cycles during which WE stays
+> asserted.
+> +   Valid values are 0-15, default is 1
+> + - nvidia,snor-oe-width: Number of cycles during which OE stays
+> asserted.
+> +   Valid values are 0-255, default is 1
+> + - nvidia,snor-wait-width: Number of cycles before READY is
+> asserted.
+> +   Valid values are 0-255, default is 3
+> +
+> +Example with two SJA1000 CAN controllers connected to the GMI bus.
+> We wrap the
+> +controllers with a simple-bus node since they are all connected to
+> the same
+> +chip-select (CS4), in this example external address decoding is
+> provided:
+> +
+> +gmi@70090000 {
+
+It's actually 70009000.
+
+> +	compatible = "nvidia,tegra20-gmi";
+> +	reg = <0x70009000 0x1000>;
+> +	#address-cells = <1>;
+> +	#size-cells = <1>;
+> +	clocks = <&tegra_car TEGRA20_CLK_NOR>;
+> +	clock-names = "gmi";
+> +	resets = <&tegra_car 42>;
+> +	reset-names = "gmi";
+> +	ranges = <4 0x48000000 0x7ffffff>;
+> +
+> +	status = "disabled";
+
+I guess in an example one could even set this to okay.
+
+> +
+> +	bus@4 {
+> +		compatible = "simple-bus";
+> +		reg = <4>;
+> +		#address-cells = <1>;
+> +		#size-cells = <1>;
+> +		ranges = <0 4 0x40100>;
+> +
+> +		nvidia,snor-mux-mode;
+> +		nvidia,snor-adv-inv;
+> +
+> +		can@0 {
+> +			reg = <0 0x100>;
+> +			...
+> +		};
+> +
+> +		can@40000 {
+> +			reg = <0x40000 0x100>;
+> +			...
+> +		};
+> +	};
+> +};
+> +
+> +Example with one SJA1000 CAN controller connected to the GMI bus
+> +on CS4:
+> +
+> +gmi@70090000 {
+
+Same here.
+
+> +	compatible = "nvidia,tegra20-gmi";
+> +	reg = <0x70009000 0x1000>;
+> +	#address-cells = <1>;
+> +	#size-cells = <1>;
+> +	clocks = <&tegra_car TEGRA20_CLK_NOR>;
+> +	clock-names = "gmi";
+> +	resets = <&tegra_car 42>;
+> +	reset-names = "gmi";
+> +	ranges = <4 0x48000000 0x7ffffff>;
+> +
+> +	status = "disabled";
+
+Same here.
+
+> +
+> +	can@4 {
+> +		reg = <4 0x100>;
+> +		...
+> +		nvidia,snor-mux-mode;
+> +		nvidia,snor-adv-inv;
+> +	};
+> +};
+> --
+> 2.1.4
+_______________________________________________
+linux-arm-kernel mailing list
+linux-arm-kernel@lists.infradead.org
+http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff --git a/a/content_digest b/N1/content_digest
index 781e5ab..7a95669 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -7,134 +7,222 @@
   mirza.krak@gmail.com <mirza.krak@gmail.com>
   swarren@wwwdotorg.org <swarren@wwwdotorg.org>
  " thierry.reding@gmail.com <thierry.reding@gmail.com>\0"
- "Cc\0linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>"
-  robh+dt@kernel.org <robh+dt@kernel.org>
-  mturquette@baylibre.com <mturquette@baylibre.com>
-  pgaikwad@nvidia.com <pgaikwad@nvidia.com>
-  linux@armlinux.org.uk <linux@armlinux.org.uk>
+ "Cc\0mark.rutland@arm.com <mark.rutland@arm.com>"
   devicetree@vger.kernel.org <devicetree@vger.kernel.org>
+  pgaikwad@nvidia.com <pgaikwad@nvidia.com>
+  linux-clk@vger.kernel.org <linux-clk@vger.kernel.org>
   gnurou@gmail.com <gnurou@gmail.com>
-  mark.rutland@arm.com <mark.rutland@arm.com>
-  linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>
-  pdeschrijver@nvidia.com <pdeschrijver@nvidia.com>
+  mturquette@baylibre.com <mturquette@baylibre.com>
   sboyd@codeaurora.org <sboyd@codeaurora.org>
+  linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>
+  linux@armlinux.org.uk <linux@armlinux.org.uk>
+  robh+dt@kernel.org <robh+dt@kernel.org>
   linux-tegra@vger.kernel.org <linux-tegra@vger.kernel.org>
- " linux-clk@vger.kernel.org <linux-clk@vger.kernel.org>\0"
+  pdeschrijver@nvidia.com <pdeschrijver@nvidia.com>
+ " linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>\0"
  "\00:1\0"
  "b\0"
- "T24gV2VkLCAyMDE2LTA4LTI0IGF0IDE1OjM3ICswMjAwLCBNaXJ6YSBLcmFrIHdyb3RlOg0KPiBG\n"
- "cm9tOiBNaXJ6YSBLcmFrIDxtaXJ6YS5rcmFrQGdtYWlsLmNvbT4NCj4gDQo+IERvY3VtZW50IHRo\n"
- "ZSBkZXZpY2V0cmVlIGJpbmRpbmdzIGZvciB0aGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlDQo+\n"
- "IChHTUkpDQo+IGJ1cyBkcml2ZXIgZm91bmQgb24gVGVncmEgU09Dcy4NCj4gDQo+IFNpZ25lZC1v\n"
- "ZmYtYnk6IE1pcnphIEtyYWsgPG1pcnphLmtyYWtAZ21haWwuY29tPg0KPiAtLS0NCj4gQ2hhbmdl\n"
- "cyBpbiB2MjoNCj4gLSBVcGRhdGVkIGV4YW1wbGVzIGFuZCBzb21lIGluZm9ybWF0aW9uIGJhc2Vk\n"
- "IG9uIGNvbW1lbnRzIGZyb20gSm9uDQo+IEh1bnRlci4NCj4gDQo+IMKgLi4uL2RldmljZXRyZWUv\n"
- "YmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQgfCAxMzINCj4gKysrKysrKysrKysr\n"
- "KysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspDQo+IMKgY3Jl\n"
- "YXRlIG1vZGUgMTAwNjQ0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMv\n"
- "bnZpZGlhLHRlZ3JhMjAtZ21pLnR4dA0KPiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v\n"
- "ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvbnZpZGlhLHRlZ3JhMjAtDQo+IGdtaS50eHQgYi9Eb2N1\n"
- "bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLQ0KPiBnbWku\n"
- "dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjhjMWUxNWYNCj4g\n"
- "LS0tIC9kZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv\n"
- "YnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQNCj4gQEAgLTAsMCArMSwxMzIgQEANCj4gK0Rldmlj\n"
- "ZSB0cmVlIGJpbmRpbmdzIGZvciBOVklESUEgVGVncmEgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNl\n"
- "IGJ1cw0KPiArDQo+ICtUaGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlIGJ1cyBlbmFibGVzIG1l\n"
- "bW9yeSB0cmFuc2ZlcnMgYmV0d2Vlbg0KPiBpbnRlcm5hbCBhbmQNCj4gK2V4dGVybmFsIG1lbW9y\n"
- "eS4gQ2FuIGJlIHVzZWQgdG8gYXR0YWNoIHZhcmlvdXMgaGlnaCBzcGVlZCBkZXZpY2VzDQo+IHN1\n"
- "Y2ggYXMNCj4gK3N5bmNocm9ub3VzL2FzeW5jaHJvbm91cyBOT1IsIEZQR0EsIFVBUlRTIGFuZCBt\n"
- "b3JlLg0KPiArDQo+ICtUaGUgYWN0dWFsIGRldmljZXMgYXJlIGluc3RhbnRpYXRlZCBmcm9tIHRo\n"
- "ZSBjaGlsZCBub2RlcyBvZiBhIEdNSQ0KPiBub2RlLg0KPiArDQo+ICtSZXF1aXJlZCBwcm9wZXJ0\n"
- "aWVzOg0KPiArIC0gY29tcGF0aWJsZSA6IFNob3VsZCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93\n"
- "aW5nOg0KPiArwqDCoMKgwqDCoMKgwqDCoEZvciBUZWdyYTIwIG11c3QgY29udGFpbiAibnZpZGlh\n"
- "LHRlZ3JhMjAtZ21pIi4NCj4gK8KgwqDCoMKgwqDCoMKgwqBGb3IgVGVncmEzMCBtdXN0IGNvbnRh\n"
- "aW4gIm52aWRpYSx0ZWdyYTMwLWdtaSIuDQo+ICsgLSByZWc6IFNob3VsZCBjb250YWluIEdNSSBj\n"
- "b250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLg0KPiArIC0gY2xvY2tzOiBN\n"
- "dXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuDQo+ICsg\n"
- "LSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczogImdtaSIN\n"
- "Cj4gKyAtIHJlc2V0cyA6IE11c3QgY29udGFpbiBhbiBlbnRyeSBmb3IgZWFjaCBlbnRyeSBpbiBy\n"
- "ZXNldC1uYW1lcy4NCj4gKyAtIHJlc2V0LW5hbWVzIDogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dp\n"
- "bmcgZW50cmllczogImdtaSINCj4gKyAtICNhZGRyZXNzLWNlbGxzOiBUaGUgbnVtYmVyIG9mIGNl\n"
- "bGxzIHVzZWQgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQo+IGJhc2UNCj4gK8KgwqDCoGFkZHJlc3Nl\n"
- "cyBpbiB0aGUgR01JIGFkZHJlc3Mgc3BhY2UuIFNob3VsZCBiZSAxLg0KPiArIC0gI3NpemUtY2Vs\n"
- "bHM6IFRoZSBudW1iZXIgb2YgY2VsbHMgdXNlZCB0byByZXByZXNlbnQgdGhlIHNpemUgb2YgYW4N\n"
- "Cj4gYWRkcmVzcw0KPiArwqDCoMKgcmFuZ2UgaW4gdGhlIEdNSSBhZGRyZXNzIHNwYWNlLiBTaG91\n"
- "bGQgYmUgMS4NCj4gKyAtIHJhbmdlczogTXVzdCBiZSBzZXQgdXAgdG8gcmVmbGVjdCB0aGUgbWVt\n"
- "b3J5IGxheW91dCB3aXRoIHRocmVlDQo+IGludGVnZXIgdmFsdWVzDQo+ICvCoMKgwqBmb3IgZWFj\n"
- "aCBjaGlwLXNlbGVjdCBsaW5lIGluIHVzZSAob25seSBvbmUgZW50cnkgaXMgc3VwcG9ydGVkLA0K\n"
- "PiBzZWUgYmVsb3cNCj4gK8KgwqDCoGNvbW1lbnRzKToNCj4gK8KgwqDCoDxjcy1udW1iZXI+IDxw\n"
- "aHlzaWNhbCBhZGRyZXNzIG9mIG1hcHBpbmc+IDxzaXplPg0KPiArDQo+ICtOb3RlIHRoYXQgdGhl\n"
- "IEdNSSBjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgYW55IGludGVybmFsIGNoaXAtc2VsZWN0DQo+\n"
- "IGFkZHJlc3MNCj4gK2RlY29kaW5nLCBiZWNhdXNlIG9mIHRoYXQgY2hpcC1zZWxlY3RzIGVpdGhl\n"
- "ciBuZWVkIHRvIGJlIG1hbmFnZWQgdmlhDQo+IHNvZnR3YXJlDQo+ICtvciBieSBlbXBsb3lpbmcg\n"
- "ZXh0ZXJuYWwgY2hpcC1zZWxlY3QgZGVjb2RpbmcgbG9naWMuDQo+ICsNCj4gK0lmIGV4dGVybmFs\n"
- "IGNoaXAtc2VsZWN0IGxvZ2ljIGlzIHVzZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBkZXZpY2VzIGl0\n"
- "DQo+IGlzIGFzc3VtZWQNCj4gK3RoYXQgdGhlIGRldmljZXMgdXNlIHRoZSBzYW1lIHRpbWluZyBh\n"
- "bmQgc28gYXJlIHByb2JhYmx5IHRoZSBzYW1lDQo+IHR5cGUuIEl0IGFsc28NCj4gK2Fzc3VtZXMg\n"
- "dGhhdCB0aGV5IGNhbiBmaXQgaW4gdGhlIDI1Nk1CIGFkZHJlc3MgcmFuZ2UuIEluIHRoaXMgY2Fz\n"
- "ZQ0KPiBvbmx5IG9uZQ0KPiArY2hpbGQgZGV2aWNlIGlzIHN1cHBvcnRlZCB3aGljaCByZXByZXNl\n"
- "bnRzIHRoZSBhY3RpdmUgY2hpcC1zZWxlY3QNCj4gbGluZSwgc2VlDQo+ICtleGFtcGxlcyBmb3Ig\n"
- "bW9yZSBpbnNpZ2h0Lg0KPiArDQo+ICtSZXF1aXJlZCBjaGlsZCBjcyBub2RlIHByb3BlcnRpZXM6\n"
- "DQo+ICsgLSByZWc6IEZpcnN0IGVudHJ5IHNob3VsZCBjb250YWluIHRoZSBhY3RpdmUgY2hpcC1z\n"
- "ZWxlY3QgbnVtYmVyDQo+ICsNCj4gK09wdGlvbmFsIGNoaWxkIGNzIG5vZGUgcHJvcGVydGllczoN\n"
- "Cj4gKw0KPiArIC0gbnZpZGlhLHNub3ItZGF0YS13aWR0aC0zMmJpdDogVXNlIDMyYml0IGRhdGEt\n"
- "YnVzLCBkZWZhdWx0IGlzDQo+IDE2Yml0Lg0KPiArIC0gbnZpZGlhLHNub3ItbXV4LW1vZGU6IEVu\n"
- "YWJsZSBhZGRyZXNzL2RhdGEgTVVYIG1vZGUuDQo+ICsgLSBudmlkaWEsc25vci1yZHktYWN0aXZl\n"
- "LWJlZm9yZS1kYXRhOiBBc3NlcnQgUkRZIHNpZ25hbCBvbmUgY3ljbGUNCj4gYmVmb3JlIGRhdGEu\n"
- "DQo+ICvCoMKgwqBJZiBvbWl0dGVkIGl0IHdpbGwgYmUgYXNzZXJ0ZWQgd2l0aCBkYXRhLg0KPiAr\n"
- "IC0gbnZpZGlhLHNub3ItcmR5LWludjogUkRZIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0g\n"
- "bnZpZGlhLHNub3ItYWR2LWludjogQURWIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0gbnZp\n"
- "ZGlhLHNub3Itb2UtaW52OiBXRS9PRSBzaWduYWwgaXMgYWN0aXZlIGhpZ2gNCj4gKyAtIG52aWRp\n"
- "YSxzbm9yLWNzLWludjogQ1Mgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoDQo+ICsNCj4gK8KgwqBOb3Rl\n"
- "IHRoYXQgdGhlcmUgaXMgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGltaW5nIHZhbHVl\n"
- "cy4NCj4gK8KgwqBGcm9tIFRlZ3JhIFRSTToNCj4gK8KgwqBQcm9ncmFtbWluZyAwIG1lYW5zIDEg\n"
- "Y2xvY2sgY3ljbGU6IGFjdHVhbCBjeWNsZSA9IHByb2dyYW1tZWQgY3ljbGUNCj4gKyAxDQo+ICsN\n"
- "Cj4gKyAtIG52aWRpYSxzbm9yLW11eGVkLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIE1VWCBhZGRy\n"
- "ZXNzL2RhdGENCj4gYXNzZXJ0ZWQgb24gdGhlDQo+ICvCoMKgwqBidXMuIFZhbGlkIHZhbHVlcyBh\n"
- "cmUgMC0xNSwgZGVmYXVsdCBpcyAxDQo+ICsgLSBudmlkaWEsc25vci1ob2xkLXdpZHRoOiBOdW1i\n"
- "ZXIgb2YgY3ljbGVzIENFIHN0YXlzIGFzc2VydGVkIGFmdGVyDQo+IHRoZQ0KPiArwqDCoMKgZGUt\n"
- "YXNzZXJ0aW9uIG9mIFdSX04gKGluIGNhc2Ugb2YgU0xBVkUvTUFTVEVSIFJlcXVlc3QpIG9yIE9F\n"
- "X04NCj4gK8KgwqDCoChpbiBjYXNlIG9mIE1BU1RFUiBSZXF1ZXN0KS4gVmFsaWQgdmFsdWVzIGFy\n"
- "ZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAtIG52aWRpYSxzbm9yLWFkdi13aWR0aDogTnVtYmVy\n"
- "IG9mIGN5Y2xlcyBkdXJpbmcgd2hpY2ggQURWIHN0YXlzDQo+IGFzc2VydGVkLg0KPiArwqDCoMKg\n"
- "VmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDEuDQo+ICsgLSBudmlkaWEsc25vci1j\n"
- "ZS13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBiZWZvcmUgQ0UgaXMgYXNzZXJ0ZWQuDQo+ICvCoMKg\n"
- "wqBWYWxpZCB2YWx1ZXMgYXJlIDAtMTUsIGRlZmF1bHQgaXMgNA0KPiArIC0gbnZpZGlhLHNub3It\n"
- "d2Utd2lkdGg6IE51bWJlciBvZiBjeWNsZXMgZHVyaW5nIHdoaWNoIFdFIHN0YXlzDQo+IGFzc2Vy\n"
- "dGVkLg0KPiArwqDCoMKgVmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAt\n"
- "IG52aWRpYSxzbm9yLW9lLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIGR1cmluZyB3aGljaCBPRSBz\n"
- "dGF5cw0KPiBhc3NlcnRlZC4NCj4gK8KgwqDCoFZhbGlkIHZhbHVlcyBhcmUgMC0yNTUsIGRlZmF1\n"
- "bHQgaXMgMQ0KPiArIC0gbnZpZGlhLHNub3Itd2FpdC13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBi\n"
- "ZWZvcmUgUkVBRFkgaXMNCj4gYXNzZXJ0ZWQuDQo+ICvCoMKgwqBWYWxpZCB2YWx1ZXMgYXJlIDAt\n"
- "MjU1LCBkZWZhdWx0IGlzIDMNCj4gKw0KPiArRXhhbXBsZSB3aXRoIHR3byBTSkExMDAwIENBTiBj\n"
- "b250cm9sbGVycyBjb25uZWN0ZWQgdG8gdGhlIEdNSSBidXMuDQo+IFdlIHdyYXAgdGhlDQo+ICtj\n"
- "b250cm9sbGVycyB3aXRoIGEgc2ltcGxlLWJ1cyBub2RlIHNpbmNlIHRoZXkgYXJlIGFsbCBjb25u\n"
- "ZWN0ZWQgdG8NCj4gdGhlIHNhbWUNCj4gK2NoaXAtc2VsZWN0IChDUzQpLCBpbiB0aGlzIGV4YW1w\n"
- "bGUgZXh0ZXJuYWwgYWRkcmVzcyBkZWNvZGluZyBpcw0KPiBwcm92aWRlZDoNCj4gKw0KPiArZ21p\n"
- "QDcwMDkwMDAwIHsNCg0KSXQncyBhY3R1YWxseSA3MDAwOTAwMC4NCg0KPiArCWNvbXBhdGlibGUg\n"
- "PSAibnZpZGlhLHRlZ3JhMjAtZ21pIjsNCj4gKwlyZWcgPSA8MHg3MDAwOTAwMCAweDEwMDA+Ow0K\n"
- "PiArCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCWNs\n"
- "b2NrcyA9IDwmdGVncmFfY2FyIFRFR1JBMjBfQ0xLX05PUj47DQo+ICsJY2xvY2stbmFtZXMgPSAi\n"
- "Z21pIjsNCj4gKwlyZXNldHMgPSA8JnRlZ3JhX2NhciA0Mj47DQo+ICsJcmVzZXQtbmFtZXMgPSAi\n"
- "Z21pIjsNCj4gKwlyYW5nZXMgPSA8NCAweDQ4MDAwMDAwIDB4N2ZmZmZmZj47DQo+ICsNCj4gKwlz\n"
- "dGF0dXMgPSAiZGlzYWJsZWQiOw0KDQpJIGd1ZXNzIGluIGFuIGV4YW1wbGUgb25lIGNvdWxkIGV2\n"
- "ZW4gc2V0IHRoaXMgdG8gb2theS4NCg0KPiArDQo+ICsJYnVzQDQgew0KPiArCQljb21wYXRpYmxl\n"
- "ID0gInNpbXBsZS1idXMiOw0KPiArCQlyZWcgPSA8ND47DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0g\n"
- "PDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJcmFuZ2VzID0gPDAgNCAweDQwMTAw\n"
- "PjsNCj4gKw0KPiArCQludmlkaWEsc25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2\n"
- "LWludjsNCj4gKw0KPiArCQljYW5AMCB7DQo+ICsJCQlyZWcgPSA8MCAweDEwMD47DQo+ICsJCQku\n"
- "Li4NCj4gKwkJfTsNCj4gKw0KPiArCQljYW5ANDAwMDAgew0KPiArCQkJcmVnID0gPDB4NDAwMDAg\n"
- "MHgxMDA+Ow0KPiArCQkJLi4uDQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gK0V4YW1w\n"
- "bGUgd2l0aCBvbmUgU0pBMTAwMCBDQU4gY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhlIEdNSSBi\n"
- "dXMNCj4gK29uIENTNDoNCj4gKw0KPiArZ21pQDcwMDkwMDAwIHsNCg0KU2FtZSBoZXJlLg0KDQo+\n"
- "ICsJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmEyMC1nbWkiOw0KPiArCXJlZyA9IDwweDcwMDA5\n"
- "MDAwIDB4MTAwMD47DQo+ICsJI2FkZHJlc3MtY2VsbHMgPSA8MT47DQo+ICsJI3NpemUtY2VsbHMg\n"
- "PSA8MT47DQo+ICsJY2xvY2tzID0gPCZ0ZWdyYV9jYXIgVEVHUkEyMF9DTEtfTk9SPjsNCj4gKwlj\n"
- "bG9jay1uYW1lcyA9ICJnbWkiOw0KPiArCXJlc2V0cyA9IDwmdGVncmFfY2FyIDQyPjsNCj4gKwly\n"
- "ZXNldC1uYW1lcyA9ICJnbWkiOw0KPiArCXJhbmdlcyA9IDw0IDB4NDgwMDAwMDAgMHg3ZmZmZmZm\n"
- "PjsNCj4gKw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQoNClNhbWUgaGVyZS4NCg0KPiArDQo+\n"
- "ICsJY2FuQDQgew0KPiArCQlyZWcgPSA8NCAweDEwMD47DQo+ICsJCS4uLg0KPiArCQludmlkaWEs\n"
- "c25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2LWludjsNCj4gKwl9Ow0KPiArfTsN\n"
- Cj4gLS0NCj4gMi4xLjQ=
+ "On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote:\n"
+ "> From: Mirza Krak <mirza.krak@gmail.com>\n"
+ "> \n"
+ "> Document the devicetree bindings for the Generic Memory Interface\n"
+ "> (GMI)\n"
+ "> bus driver found on Tegra SOCs.\n"
+ "> \n"
+ "> Signed-off-by: Mirza Krak <mirza.krak@gmail.com>\n"
+ "> ---\n"
+ "> Changes in v2:\n"
+ "> - Updated examples and some information based on comments from Jon\n"
+ "> Hunter.\n"
+ "> \n"
+ "> \302\240.../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132\n"
+ "> +++++++++++++++++++++\n"
+ "> \302\2401 file changed, 132 insertions(+)\n"
+ "> \302\240create mode 100644\n"
+ "> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt\n"
+ "> \n"
+ "> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20-\n"
+ "> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20-\n"
+ "> gmi.txt\n"
+ "> new file mode 100644\n"
+ "> index 0000000..8c1e15f\n"
+ "> --- /dev/null\n"
+ "> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt\n"
+ "> @@ -0,0 +1,132 @@\n"
+ "> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus\n"
+ "> +\n"
+ "> +The Generic Memory Interface bus enables memory transfers between\n"
+ "> internal and\n"
+ "> +external memory. Can be used to attach various high speed devices\n"
+ "> such as\n"
+ "> +synchronous/asynchronous NOR, FPGA, UARTS and more.\n"
+ "> +\n"
+ "> +The actual devices are instantiated from the child nodes of a GMI\n"
+ "> node.\n"
+ "> +\n"
+ "> +Required properties:\n"
+ "> + - compatible : Should contain one of the following:\n"
+ "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240For Tegra20 must contain \"nvidia,tegra20-gmi\".\n"
+ "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240For Tegra30 must contain \"nvidia,tegra30-gmi\".\n"
+ "> + - reg: Should contain GMI controller registers location and length.\n"
+ "> + - clocks: Must contain an entry for each entry in clock-names.\n"
+ "> + - clock-names: Must include the following entries: \"gmi\"\n"
+ "> + - resets : Must contain an entry for each entry in reset-names.\n"
+ "> + - reset-names : Must include the following entries: \"gmi\"\n"
+ "> + - #address-cells: The number of cells used to represent physical\n"
+ "> base\n"
+ "> +\302\240\302\240\302\240addresses in the GMI address space. Should be 1.\n"
+ "> + - #size-cells: The number of cells used to represent the size of an\n"
+ "> address\n"
+ "> +\302\240\302\240\302\240range in the GMI address space. Should be 1.\n"
+ "> + - ranges: Must be set up to reflect the memory layout with three\n"
+ "> integer values\n"
+ "> +\302\240\302\240\302\240for each chip-select line in use (only one entry is supported,\n"
+ "> see below\n"
+ "> +\302\240\302\240\302\240comments):\n"
+ "> +\302\240\302\240\302\240<cs-number> <physical address of mapping> <size>\n"
+ "> +\n"
+ "> +Note that the GMI controller does not have any internal chip-select\n"
+ "> address\n"
+ "> +decoding, because of that chip-selects either need to be managed via\n"
+ "> software\n"
+ "> +or by employing external chip-select decoding logic.\n"
+ "> +\n"
+ "> +If external chip-select logic is used to support multiple devices it\n"
+ "> is assumed\n"
+ "> +that the devices use the same timing and so are probably the same\n"
+ "> type. It also\n"
+ "> +assumes that they can fit in the 256MB address range. In this case\n"
+ "> only one\n"
+ "> +child device is supported which represents the active chip-select\n"
+ "> line, see\n"
+ "> +examples for more insight.\n"
+ "> +\n"
+ "> +Required child cs node properties:\n"
+ "> + - reg: First entry should contain the active chip-select number\n"
+ "> +\n"
+ "> +Optional child cs node properties:\n"
+ "> +\n"
+ "> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is\n"
+ "> 16bit.\n"
+ "> + - nvidia,snor-mux-mode: Enable address/data MUX mode.\n"
+ "> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle\n"
+ "> before data.\n"
+ "> +\302\240\302\240\302\240If omitted it will be asserted with data.\n"
+ "> + - nvidia,snor-rdy-inv: RDY signal is active high\n"
+ "> + - nvidia,snor-adv-inv: ADV signal is active high\n"
+ "> + - nvidia,snor-oe-inv: WE/OE signal is active high\n"
+ "> + - nvidia,snor-cs-inv: CS signal is active high\n"
+ "> +\n"
+ "> +\302\240\302\240Note that there is some special handling for the timing values.\n"
+ "> +\302\240\302\240From Tegra TRM:\n"
+ "> +\302\240\302\240Programming 0 means 1 clock cycle: actual cycle = programmed cycle\n"
+ "> + 1\n"
+ "> +\n"
+ "> + - nvidia,snor-muxed-width: Number of cycles MUX address/data\n"
+ "> asserted on the\n"
+ "> +\302\240\302\240\302\240bus. Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after\n"
+ "> the\n"
+ "> +\302\240\302\240\302\240de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N\n"
+ "> +\302\240\302\240\302\240(in case of MASTER Request). Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-adv-width: Number of cycles during which ADV stays\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-15, default is 1.\n"
+ "> + - nvidia,snor-ce-width: Number of cycles before CE is asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-15, default is 4\n"
+ "> + - nvidia,snor-we-width: Number of cycles during which WE stays\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-oe-width: Number of cycles during which OE stays\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-255, default is 1\n"
+ "> + - nvidia,snor-wait-width: Number of cycles before READY is\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-255, default is 3\n"
+ "> +\n"
+ "> +Example with two SJA1000 CAN controllers connected to the GMI bus.\n"
+ "> We wrap the\n"
+ "> +controllers with a simple-bus node since they are all connected to\n"
+ "> the same\n"
+ "> +chip-select (CS4), in this example external address decoding is\n"
+ "> provided:\n"
+ "> +\n"
+ "> +gmi@70090000 {\n"
+ "\n"
+ "It's actually 70009000.\n"
+ "\n"
+ "> +\tcompatible = \"nvidia,tegra20-gmi\";\n"
+ "> +\treg = <0x70009000 0x1000>;\n"
+ "> +\t#address-cells = <1>;\n"
+ "> +\t#size-cells = <1>;\n"
+ "> +\tclocks = <&tegra_car TEGRA20_CLK_NOR>;\n"
+ "> +\tclock-names = \"gmi\";\n"
+ "> +\tresets = <&tegra_car 42>;\n"
+ "> +\treset-names = \"gmi\";\n"
+ "> +\tranges = <4 0x48000000 0x7ffffff>;\n"
+ "> +\n"
+ "> +\tstatus = \"disabled\";\n"
+ "\n"
+ "I guess in an example one could even set this to okay.\n"
+ "\n"
+ "> +\n"
+ "> +\tbus@4 {\n"
+ "> +\t\tcompatible = \"simple-bus\";\n"
+ "> +\t\treg = <4>;\n"
+ "> +\t\t#address-cells = <1>;\n"
+ "> +\t\t#size-cells = <1>;\n"
+ "> +\t\tranges = <0 4 0x40100>;\n"
+ "> +\n"
+ "> +\t\tnvidia,snor-mux-mode;\n"
+ "> +\t\tnvidia,snor-adv-inv;\n"
+ "> +\n"
+ "> +\t\tcan@0 {\n"
+ "> +\t\t\treg = <0 0x100>;\n"
+ "> +\t\t\t...\n"
+ "> +\t\t};\n"
+ "> +\n"
+ "> +\t\tcan@40000 {\n"
+ "> +\t\t\treg = <0x40000 0x100>;\n"
+ "> +\t\t\t...\n"
+ "> +\t\t};\n"
+ "> +\t};\n"
+ "> +};\n"
+ "> +\n"
+ "> +Example with one SJA1000 CAN controller connected to the GMI bus\n"
+ "> +on CS4:\n"
+ "> +\n"
+ "> +gmi@70090000 {\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ "> +\tcompatible = \"nvidia,tegra20-gmi\";\n"
+ "> +\treg = <0x70009000 0x1000>;\n"
+ "> +\t#address-cells = <1>;\n"
+ "> +\t#size-cells = <1>;\n"
+ "> +\tclocks = <&tegra_car TEGRA20_CLK_NOR>;\n"
+ "> +\tclock-names = \"gmi\";\n"
+ "> +\tresets = <&tegra_car 42>;\n"
+ "> +\treset-names = \"gmi\";\n"
+ "> +\tranges = <4 0x48000000 0x7ffffff>;\n"
+ "> +\n"
+ "> +\tstatus = \"disabled\";\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ "> +\n"
+ "> +\tcan@4 {\n"
+ "> +\t\treg = <4 0x100>;\n"
+ "> +\t\t...\n"
+ "> +\t\tnvidia,snor-mux-mode;\n"
+ "> +\t\tnvidia,snor-adv-inv;\n"
+ "> +\t};\n"
+ "> +};\n"
+ "> --\n"
+ "> 2.1.4\n"
+ "_______________________________________________\n"
+ "linux-arm-kernel mailing list\n"
+ "linux-arm-kernel@lists.infradead.org\n"
+ http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
 
-e80e60be58c895271755a1e67c11c6c15566a8b9b119a08acad3c0546592f4b1
+ad5095eaebb0c1e131d9fe376cae3c461cd7c6396f60318db83065c3999440f3

diff --git a/a/1.txt b/N2/1.txt
index 704756d..3b354cc 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,114 +1,198 @@
-T24gV2VkLCAyMDE2LTA4LTI0IGF0IDE1OjM3ICswMjAwLCBNaXJ6YSBLcmFrIHdyb3RlOg0KPiBG
-cm9tOiBNaXJ6YSBLcmFrIDxtaXJ6YS5rcmFrQGdtYWlsLmNvbT4NCj4gDQo+IERvY3VtZW50IHRo
-ZSBkZXZpY2V0cmVlIGJpbmRpbmdzIGZvciB0aGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlDQo+
-IChHTUkpDQo+IGJ1cyBkcml2ZXIgZm91bmQgb24gVGVncmEgU09Dcy4NCj4gDQo+IFNpZ25lZC1v
-ZmYtYnk6IE1pcnphIEtyYWsgPG1pcnphLmtyYWtAZ21haWwuY29tPg0KPiAtLS0NCj4gQ2hhbmdl
-cyBpbiB2MjoNCj4gLSBVcGRhdGVkIGV4YW1wbGVzIGFuZCBzb21lIGluZm9ybWF0aW9uIGJhc2Vk
-IG9uIGNvbW1lbnRzIGZyb20gSm9uDQo+IEh1bnRlci4NCj4gDQo+IMKgLi4uL2RldmljZXRyZWUv
-YmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQgfCAxMzINCj4gKysrKysrKysrKysr
-KysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspDQo+IMKgY3Jl
-YXRlIG1vZGUgMTAwNjQ0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMv
-bnZpZGlhLHRlZ3JhMjAtZ21pLnR4dA0KPiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v
-ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvbnZpZGlhLHRlZ3JhMjAtDQo+IGdtaS50eHQgYi9Eb2N1
-bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLQ0KPiBnbWku
-dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjhjMWUxNWYNCj4g
-LS0tIC9kZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv
-YnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQNCj4gQEAgLTAsMCArMSwxMzIgQEANCj4gK0Rldmlj
-ZSB0cmVlIGJpbmRpbmdzIGZvciBOVklESUEgVGVncmEgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNl
-IGJ1cw0KPiArDQo+ICtUaGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlIGJ1cyBlbmFibGVzIG1l
-bW9yeSB0cmFuc2ZlcnMgYmV0d2Vlbg0KPiBpbnRlcm5hbCBhbmQNCj4gK2V4dGVybmFsIG1lbW9y
-eS4gQ2FuIGJlIHVzZWQgdG8gYXR0YWNoIHZhcmlvdXMgaGlnaCBzcGVlZCBkZXZpY2VzDQo+IHN1
-Y2ggYXMNCj4gK3N5bmNocm9ub3VzL2FzeW5jaHJvbm91cyBOT1IsIEZQR0EsIFVBUlRTIGFuZCBt
-b3JlLg0KPiArDQo+ICtUaGUgYWN0dWFsIGRldmljZXMgYXJlIGluc3RhbnRpYXRlZCBmcm9tIHRo
-ZSBjaGlsZCBub2RlcyBvZiBhIEdNSQ0KPiBub2RlLg0KPiArDQo+ICtSZXF1aXJlZCBwcm9wZXJ0
-aWVzOg0KPiArIC0gY29tcGF0aWJsZSA6IFNob3VsZCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93
-aW5nOg0KPiArwqDCoMKgwqDCoMKgwqDCoEZvciBUZWdyYTIwIG11c3QgY29udGFpbiAibnZpZGlh
-LHRlZ3JhMjAtZ21pIi4NCj4gK8KgwqDCoMKgwqDCoMKgwqBGb3IgVGVncmEzMCBtdXN0IGNvbnRh
-aW4gIm52aWRpYSx0ZWdyYTMwLWdtaSIuDQo+ICsgLSByZWc6IFNob3VsZCBjb250YWluIEdNSSBj
-b250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLg0KPiArIC0gY2xvY2tzOiBN
-dXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuDQo+ICsg
-LSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczogImdtaSIN
-Cj4gKyAtIHJlc2V0cyA6IE11c3QgY29udGFpbiBhbiBlbnRyeSBmb3IgZWFjaCBlbnRyeSBpbiBy
-ZXNldC1uYW1lcy4NCj4gKyAtIHJlc2V0LW5hbWVzIDogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dp
-bmcgZW50cmllczogImdtaSINCj4gKyAtICNhZGRyZXNzLWNlbGxzOiBUaGUgbnVtYmVyIG9mIGNl
-bGxzIHVzZWQgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQo+IGJhc2UNCj4gK8KgwqDCoGFkZHJlc3Nl
-cyBpbiB0aGUgR01JIGFkZHJlc3Mgc3BhY2UuIFNob3VsZCBiZSAxLg0KPiArIC0gI3NpemUtY2Vs
-bHM6IFRoZSBudW1iZXIgb2YgY2VsbHMgdXNlZCB0byByZXByZXNlbnQgdGhlIHNpemUgb2YgYW4N
-Cj4gYWRkcmVzcw0KPiArwqDCoMKgcmFuZ2UgaW4gdGhlIEdNSSBhZGRyZXNzIHNwYWNlLiBTaG91
-bGQgYmUgMS4NCj4gKyAtIHJhbmdlczogTXVzdCBiZSBzZXQgdXAgdG8gcmVmbGVjdCB0aGUgbWVt
-b3J5IGxheW91dCB3aXRoIHRocmVlDQo+IGludGVnZXIgdmFsdWVzDQo+ICvCoMKgwqBmb3IgZWFj
-aCBjaGlwLXNlbGVjdCBsaW5lIGluIHVzZSAob25seSBvbmUgZW50cnkgaXMgc3VwcG9ydGVkLA0K
-PiBzZWUgYmVsb3cNCj4gK8KgwqDCoGNvbW1lbnRzKToNCj4gK8KgwqDCoDxjcy1udW1iZXI+IDxw
-aHlzaWNhbCBhZGRyZXNzIG9mIG1hcHBpbmc+IDxzaXplPg0KPiArDQo+ICtOb3RlIHRoYXQgdGhl
-IEdNSSBjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgYW55IGludGVybmFsIGNoaXAtc2VsZWN0DQo+
-IGFkZHJlc3MNCj4gK2RlY29kaW5nLCBiZWNhdXNlIG9mIHRoYXQgY2hpcC1zZWxlY3RzIGVpdGhl
-ciBuZWVkIHRvIGJlIG1hbmFnZWQgdmlhDQo+IHNvZnR3YXJlDQo+ICtvciBieSBlbXBsb3lpbmcg
-ZXh0ZXJuYWwgY2hpcC1zZWxlY3QgZGVjb2RpbmcgbG9naWMuDQo+ICsNCj4gK0lmIGV4dGVybmFs
-IGNoaXAtc2VsZWN0IGxvZ2ljIGlzIHVzZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBkZXZpY2VzIGl0
-DQo+IGlzIGFzc3VtZWQNCj4gK3RoYXQgdGhlIGRldmljZXMgdXNlIHRoZSBzYW1lIHRpbWluZyBh
-bmQgc28gYXJlIHByb2JhYmx5IHRoZSBzYW1lDQo+IHR5cGUuIEl0IGFsc28NCj4gK2Fzc3VtZXMg
-dGhhdCB0aGV5IGNhbiBmaXQgaW4gdGhlIDI1Nk1CIGFkZHJlc3MgcmFuZ2UuIEluIHRoaXMgY2Fz
-ZQ0KPiBvbmx5IG9uZQ0KPiArY2hpbGQgZGV2aWNlIGlzIHN1cHBvcnRlZCB3aGljaCByZXByZXNl
-bnRzIHRoZSBhY3RpdmUgY2hpcC1zZWxlY3QNCj4gbGluZSwgc2VlDQo+ICtleGFtcGxlcyBmb3Ig
-bW9yZSBpbnNpZ2h0Lg0KPiArDQo+ICtSZXF1aXJlZCBjaGlsZCBjcyBub2RlIHByb3BlcnRpZXM6
-DQo+ICsgLSByZWc6IEZpcnN0IGVudHJ5IHNob3VsZCBjb250YWluIHRoZSBhY3RpdmUgY2hpcC1z
-ZWxlY3QgbnVtYmVyDQo+ICsNCj4gK09wdGlvbmFsIGNoaWxkIGNzIG5vZGUgcHJvcGVydGllczoN
-Cj4gKw0KPiArIC0gbnZpZGlhLHNub3ItZGF0YS13aWR0aC0zMmJpdDogVXNlIDMyYml0IGRhdGEt
-YnVzLCBkZWZhdWx0IGlzDQo+IDE2Yml0Lg0KPiArIC0gbnZpZGlhLHNub3ItbXV4LW1vZGU6IEVu
-YWJsZSBhZGRyZXNzL2RhdGEgTVVYIG1vZGUuDQo+ICsgLSBudmlkaWEsc25vci1yZHktYWN0aXZl
-LWJlZm9yZS1kYXRhOiBBc3NlcnQgUkRZIHNpZ25hbCBvbmUgY3ljbGUNCj4gYmVmb3JlIGRhdGEu
-DQo+ICvCoMKgwqBJZiBvbWl0dGVkIGl0IHdpbGwgYmUgYXNzZXJ0ZWQgd2l0aCBkYXRhLg0KPiAr
-IC0gbnZpZGlhLHNub3ItcmR5LWludjogUkRZIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0g
-bnZpZGlhLHNub3ItYWR2LWludjogQURWIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0gbnZp
-ZGlhLHNub3Itb2UtaW52OiBXRS9PRSBzaWduYWwgaXMgYWN0aXZlIGhpZ2gNCj4gKyAtIG52aWRp
-YSxzbm9yLWNzLWludjogQ1Mgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoDQo+ICsNCj4gK8KgwqBOb3Rl
-IHRoYXQgdGhlcmUgaXMgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGltaW5nIHZhbHVl
-cy4NCj4gK8KgwqBGcm9tIFRlZ3JhIFRSTToNCj4gK8KgwqBQcm9ncmFtbWluZyAwIG1lYW5zIDEg
-Y2xvY2sgY3ljbGU6IGFjdHVhbCBjeWNsZSA9IHByb2dyYW1tZWQgY3ljbGUNCj4gKyAxDQo+ICsN
-Cj4gKyAtIG52aWRpYSxzbm9yLW11eGVkLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIE1VWCBhZGRy
-ZXNzL2RhdGENCj4gYXNzZXJ0ZWQgb24gdGhlDQo+ICvCoMKgwqBidXMuIFZhbGlkIHZhbHVlcyBh
-cmUgMC0xNSwgZGVmYXVsdCBpcyAxDQo+ICsgLSBudmlkaWEsc25vci1ob2xkLXdpZHRoOiBOdW1i
-ZXIgb2YgY3ljbGVzIENFIHN0YXlzIGFzc2VydGVkIGFmdGVyDQo+IHRoZQ0KPiArwqDCoMKgZGUt
-YXNzZXJ0aW9uIG9mIFdSX04gKGluIGNhc2Ugb2YgU0xBVkUvTUFTVEVSIFJlcXVlc3QpIG9yIE9F
-X04NCj4gK8KgwqDCoChpbiBjYXNlIG9mIE1BU1RFUiBSZXF1ZXN0KS4gVmFsaWQgdmFsdWVzIGFy
-ZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAtIG52aWRpYSxzbm9yLWFkdi13aWR0aDogTnVtYmVy
-IG9mIGN5Y2xlcyBkdXJpbmcgd2hpY2ggQURWIHN0YXlzDQo+IGFzc2VydGVkLg0KPiArwqDCoMKg
-VmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDEuDQo+ICsgLSBudmlkaWEsc25vci1j
-ZS13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBiZWZvcmUgQ0UgaXMgYXNzZXJ0ZWQuDQo+ICvCoMKg
-wqBWYWxpZCB2YWx1ZXMgYXJlIDAtMTUsIGRlZmF1bHQgaXMgNA0KPiArIC0gbnZpZGlhLHNub3It
-d2Utd2lkdGg6IE51bWJlciBvZiBjeWNsZXMgZHVyaW5nIHdoaWNoIFdFIHN0YXlzDQo+IGFzc2Vy
-dGVkLg0KPiArwqDCoMKgVmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAt
-IG52aWRpYSxzbm9yLW9lLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIGR1cmluZyB3aGljaCBPRSBz
-dGF5cw0KPiBhc3NlcnRlZC4NCj4gK8KgwqDCoFZhbGlkIHZhbHVlcyBhcmUgMC0yNTUsIGRlZmF1
-bHQgaXMgMQ0KPiArIC0gbnZpZGlhLHNub3Itd2FpdC13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBi
-ZWZvcmUgUkVBRFkgaXMNCj4gYXNzZXJ0ZWQuDQo+ICvCoMKgwqBWYWxpZCB2YWx1ZXMgYXJlIDAt
-MjU1LCBkZWZhdWx0IGlzIDMNCj4gKw0KPiArRXhhbXBsZSB3aXRoIHR3byBTSkExMDAwIENBTiBj
-b250cm9sbGVycyBjb25uZWN0ZWQgdG8gdGhlIEdNSSBidXMuDQo+IFdlIHdyYXAgdGhlDQo+ICtj
-b250cm9sbGVycyB3aXRoIGEgc2ltcGxlLWJ1cyBub2RlIHNpbmNlIHRoZXkgYXJlIGFsbCBjb25u
-ZWN0ZWQgdG8NCj4gdGhlIHNhbWUNCj4gK2NoaXAtc2VsZWN0IChDUzQpLCBpbiB0aGlzIGV4YW1w
-bGUgZXh0ZXJuYWwgYWRkcmVzcyBkZWNvZGluZyBpcw0KPiBwcm92aWRlZDoNCj4gKw0KPiArZ21p
-QDcwMDkwMDAwIHsNCg0KSXQncyBhY3R1YWxseSA3MDAwOTAwMC4NCg0KPiArCWNvbXBhdGlibGUg
-PSAibnZpZGlhLHRlZ3JhMjAtZ21pIjsNCj4gKwlyZWcgPSA8MHg3MDAwOTAwMCAweDEwMDA+Ow0K
-PiArCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCWNs
-b2NrcyA9IDwmdGVncmFfY2FyIFRFR1JBMjBfQ0xLX05PUj47DQo+ICsJY2xvY2stbmFtZXMgPSAi
-Z21pIjsNCj4gKwlyZXNldHMgPSA8JnRlZ3JhX2NhciA0Mj47DQo+ICsJcmVzZXQtbmFtZXMgPSAi
-Z21pIjsNCj4gKwlyYW5nZXMgPSA8NCAweDQ4MDAwMDAwIDB4N2ZmZmZmZj47DQo+ICsNCj4gKwlz
-dGF0dXMgPSAiZGlzYWJsZWQiOw0KDQpJIGd1ZXNzIGluIGFuIGV4YW1wbGUgb25lIGNvdWxkIGV2
-ZW4gc2V0IHRoaXMgdG8gb2theS4NCg0KPiArDQo+ICsJYnVzQDQgew0KPiArCQljb21wYXRpYmxl
-ID0gInNpbXBsZS1idXMiOw0KPiArCQlyZWcgPSA8ND47DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0g
-PDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJcmFuZ2VzID0gPDAgNCAweDQwMTAw
-PjsNCj4gKw0KPiArCQludmlkaWEsc25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2
-LWludjsNCj4gKw0KPiArCQljYW5AMCB7DQo+ICsJCQlyZWcgPSA8MCAweDEwMD47DQo+ICsJCQku
-Li4NCj4gKwkJfTsNCj4gKw0KPiArCQljYW5ANDAwMDAgew0KPiArCQkJcmVnID0gPDB4NDAwMDAg
-MHgxMDA+Ow0KPiArCQkJLi4uDQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gK0V4YW1w
-bGUgd2l0aCBvbmUgU0pBMTAwMCBDQU4gY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhlIEdNSSBi
-dXMNCj4gK29uIENTNDoNCj4gKw0KPiArZ21pQDcwMDkwMDAwIHsNCg0KU2FtZSBoZXJlLg0KDQo+
-ICsJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmEyMC1nbWkiOw0KPiArCXJlZyA9IDwweDcwMDA5
-MDAwIDB4MTAwMD47DQo+ICsJI2FkZHJlc3MtY2VsbHMgPSA8MT47DQo+ICsJI3NpemUtY2VsbHMg
-PSA8MT47DQo+ICsJY2xvY2tzID0gPCZ0ZWdyYV9jYXIgVEVHUkEyMF9DTEtfTk9SPjsNCj4gKwlj
-bG9jay1uYW1lcyA9ICJnbWkiOw0KPiArCXJlc2V0cyA9IDwmdGVncmFfY2FyIDQyPjsNCj4gKwly
-ZXNldC1uYW1lcyA9ICJnbWkiOw0KPiArCXJhbmdlcyA9IDw0IDB4NDgwMDAwMDAgMHg3ZmZmZmZm
-PjsNCj4gKw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQoNClNhbWUgaGVyZS4NCg0KPiArDQo+
-ICsJY2FuQDQgew0KPiArCQlyZWcgPSA8NCAweDEwMD47DQo+ICsJCS4uLg0KPiArCQludmlkaWEs
-c25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2LWludjsNCj4gKwl9Ow0KPiArfTsN
-Cj4gLS0NCj4gMi4xLjQ=
+On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote:
+> From: Mirza Krak <mirza.krak@gmail.com>
+> 
+> Document the devicetree bindings for the Generic Memory Interface
+> (GMI)
+> bus driver found on Tegra SOCs.
+> 
+> Signed-off-by: Mirza Krak <mirza.krak@gmail.com>
+> ---
+> Changes in v2:
+> - Updated examples and some information based on comments from Jon
+> Hunter.
+> 
+> ?.../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132
+> +++++++++++++++++++++
+> ?1 file changed, 132 insertions(+)
+> ?create mode 100644
+> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
+> 
+> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20-
+> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20-
+> gmi.txt
+> new file mode 100644
+> index 0000000..8c1e15f
+> --- /dev/null
+> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
+> @@ -0,0 +1,132 @@
+> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus
+> +
+> +The Generic Memory Interface bus enables memory transfers between
+> internal and
+> +external memory. Can be used to attach various high speed devices
+> such as
+> +synchronous/asynchronous NOR, FPGA, UARTS and more.
+> +
+> +The actual devices are instantiated from the child nodes of a GMI
+> node.
+> +
+> +Required properties:
+> + - compatible : Should contain one of the following:
+> +????????For Tegra20 must contain "nvidia,tegra20-gmi".
+> +????????For Tegra30 must contain "nvidia,tegra30-gmi".
+> + - reg: Should contain GMI controller registers location and length.
+> + - clocks: Must contain an entry for each entry in clock-names.
+> + - clock-names: Must include the following entries: "gmi"
+> + - resets : Must contain an entry for each entry in reset-names.
+> + - reset-names : Must include the following entries: "gmi"
+> + - #address-cells: The number of cells used to represent physical
+> base
+> +???addresses in the GMI address space. Should be 1.
+> + - #size-cells: The number of cells used to represent the size of an
+> address
+> +???range in the GMI address space. Should be 1.
+> + - ranges: Must be set up to reflect the memory layout with three
+> integer values
+> +???for each chip-select line in use (only one entry is supported,
+> see below
+> +???comments):
+> +???<cs-number> <physical address of mapping> <size>
+> +
+> +Note that the GMI controller does not have any internal chip-select
+> address
+> +decoding, because of that chip-selects either need to be managed via
+> software
+> +or by employing external chip-select decoding logic.
+> +
+> +If external chip-select logic is used to support multiple devices it
+> is assumed
+> +that the devices use the same timing and so are probably the same
+> type. It also
+> +assumes that they can fit in the 256MB address range. In this case
+> only one
+> +child device is supported which represents the active chip-select
+> line, see
+> +examples for more insight.
+> +
+> +Required child cs node properties:
+> + - reg: First entry should contain the active chip-select number
+> +
+> +Optional child cs node properties:
+> +
+> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is
+> 16bit.
+> + - nvidia,snor-mux-mode: Enable address/data MUX mode.
+> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle
+> before data.
+> +???If omitted it will be asserted with data.
+> + - nvidia,snor-rdy-inv: RDY signal is active high
+> + - nvidia,snor-adv-inv: ADV signal is active high
+> + - nvidia,snor-oe-inv: WE/OE signal is active high
+> + - nvidia,snor-cs-inv: CS signal is active high
+> +
+> +??Note that there is some special handling for the timing values.
+> +??From Tegra TRM:
+> +??Programming 0 means 1 clock cycle: actual cycle = programmed cycle
+> + 1
+> +
+> + - nvidia,snor-muxed-width: Number of cycles MUX address/data
+> asserted on the
+> +???bus. Valid values are 0-15, default is 1
+> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after
+> the
+> +???de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N
+> +???(in case of MASTER Request). Valid values are 0-15, default is 1
+> + - nvidia,snor-adv-width: Number of cycles during which ADV stays
+> asserted.
+> +???Valid values are 0-15, default is 1.
+> + - nvidia,snor-ce-width: Number of cycles before CE is asserted.
+> +???Valid values are 0-15, default is 4
+> + - nvidia,snor-we-width: Number of cycles during which WE stays
+> asserted.
+> +???Valid values are 0-15, default is 1
+> + - nvidia,snor-oe-width: Number of cycles during which OE stays
+> asserted.
+> +???Valid values are 0-255, default is 1
+> + - nvidia,snor-wait-width: Number of cycles before READY is
+> asserted.
+> +???Valid values are 0-255, default is 3
+> +
+> +Example with two SJA1000 CAN controllers connected to the GMI bus.
+> We wrap the
+> +controllers with a simple-bus node since they are all connected to
+> the same
+> +chip-select (CS4), in this example external address decoding is
+> provided:
+> +
+> +gmi at 70090000 {
+
+It's actually 70009000.
+
+> +	compatible = "nvidia,tegra20-gmi";
+> +	reg = <0x70009000 0x1000>;
+> +	#address-cells = <1>;
+> +	#size-cells = <1>;
+> +	clocks = <&tegra_car TEGRA20_CLK_NOR>;
+> +	clock-names = "gmi";
+> +	resets = <&tegra_car 42>;
+> +	reset-names = "gmi";
+> +	ranges = <4 0x48000000 0x7ffffff>;
+> +
+> +	status = "disabled";
+
+I guess in an example one could even set this to okay.
+
+> +
+> +	bus at 4 {
+> +		compatible = "simple-bus";
+> +		reg = <4>;
+> +		#address-cells = <1>;
+> +		#size-cells = <1>;
+> +		ranges = <0 4 0x40100>;
+> +
+> +		nvidia,snor-mux-mode;
+> +		nvidia,snor-adv-inv;
+> +
+> +		can at 0 {
+> +			reg = <0 0x100>;
+> +			...
+> +		};
+> +
+> +		can at 40000 {
+> +			reg = <0x40000 0x100>;
+> +			...
+> +		};
+> +	};
+> +};
+> +
+> +Example with one SJA1000 CAN controller connected to the GMI bus
+> +on CS4:
+> +
+> +gmi at 70090000 {
+
+Same here.
+
+> +	compatible = "nvidia,tegra20-gmi";
+> +	reg = <0x70009000 0x1000>;
+> +	#address-cells = <1>;
+> +	#size-cells = <1>;
+> +	clocks = <&tegra_car TEGRA20_CLK_NOR>;
+> +	clock-names = "gmi";
+> +	resets = <&tegra_car 42>;
+> +	reset-names = "gmi";
+> +	ranges = <4 0x48000000 0x7ffffff>;
+> +
+> +	status = "disabled";
+
+Same here.
+
+> +
+> +	can at 4 {
+> +		reg = <4 0x100>;
+> +		...
+> +		nvidia,snor-mux-mode;
+> +		nvidia,snor-adv-inv;
+> +	};
+> +};
+> --
+> 2.1.4
diff --git a/a/content_digest b/N2/content_digest
index 781e5ab..ef8be30 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -1,140 +1,208 @@
  "ref\01472045838-22628-1-git-send-email-mirza.krak@gmail.com\0"
  "ref\01472045838-22628-4-git-send-email-mirza.krak@gmail.com\0"
- "From\0Marcel Ziswiler <marcel.ziswiler@toradex.com>\0"
- "Subject\0Re: [PATCH v2 3/6] dt/bindings: Add bindings for Tegra GMI controller\0"
+ "From\0marcel.ziswiler@toradex.com (Marcel Ziswiler)\0"
+ "Subject\0[PATCH v2 3/6] dt/bindings: Add bindings for Tegra GMI controller\0"
  "Date\0Tue, 30 Aug 2016 15:02:14 +0000\0"
- "To\0jonathanh@nvidia.com <jonathanh@nvidia.com>"
-  mirza.krak@gmail.com <mirza.krak@gmail.com>
-  swarren@wwwdotorg.org <swarren@wwwdotorg.org>
- " thierry.reding@gmail.com <thierry.reding@gmail.com>\0"
- "Cc\0linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>"
-  robh+dt@kernel.org <robh+dt@kernel.org>
-  mturquette@baylibre.com <mturquette@baylibre.com>
-  pgaikwad@nvidia.com <pgaikwad@nvidia.com>
-  linux@armlinux.org.uk <linux@armlinux.org.uk>
-  devicetree@vger.kernel.org <devicetree@vger.kernel.org>
-  gnurou@gmail.com <gnurou@gmail.com>
-  mark.rutland@arm.com <mark.rutland@arm.com>
-  linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>
-  pdeschrijver@nvidia.com <pdeschrijver@nvidia.com>
-  sboyd@codeaurora.org <sboyd@codeaurora.org>
-  linux-tegra@vger.kernel.org <linux-tegra@vger.kernel.org>
- " linux-clk@vger.kernel.org <linux-clk@vger.kernel.org>\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
  "\00:1\0"
  "b\0"
- "T24gV2VkLCAyMDE2LTA4LTI0IGF0IDE1OjM3ICswMjAwLCBNaXJ6YSBLcmFrIHdyb3RlOg0KPiBG\n"
- "cm9tOiBNaXJ6YSBLcmFrIDxtaXJ6YS5rcmFrQGdtYWlsLmNvbT4NCj4gDQo+IERvY3VtZW50IHRo\n"
- "ZSBkZXZpY2V0cmVlIGJpbmRpbmdzIGZvciB0aGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlDQo+\n"
- "IChHTUkpDQo+IGJ1cyBkcml2ZXIgZm91bmQgb24gVGVncmEgU09Dcy4NCj4gDQo+IFNpZ25lZC1v\n"
- "ZmYtYnk6IE1pcnphIEtyYWsgPG1pcnphLmtyYWtAZ21haWwuY29tPg0KPiAtLS0NCj4gQ2hhbmdl\n"
- "cyBpbiB2MjoNCj4gLSBVcGRhdGVkIGV4YW1wbGVzIGFuZCBzb21lIGluZm9ybWF0aW9uIGJhc2Vk\n"
- "IG9uIGNvbW1lbnRzIGZyb20gSm9uDQo+IEh1bnRlci4NCj4gDQo+IMKgLi4uL2RldmljZXRyZWUv\n"
- "YmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQgfCAxMzINCj4gKysrKysrKysrKysr\n"
- "KysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspDQo+IMKgY3Jl\n"
- "YXRlIG1vZGUgMTAwNjQ0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMv\n"
- "bnZpZGlhLHRlZ3JhMjAtZ21pLnR4dA0KPiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v\n"
- "ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvbnZpZGlhLHRlZ3JhMjAtDQo+IGdtaS50eHQgYi9Eb2N1\n"
- "bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLQ0KPiBnbWku\n"
- "dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjhjMWUxNWYNCj4g\n"
- "LS0tIC9kZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv\n"
- "YnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQNCj4gQEAgLTAsMCArMSwxMzIgQEANCj4gK0Rldmlj\n"
- "ZSB0cmVlIGJpbmRpbmdzIGZvciBOVklESUEgVGVncmEgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNl\n"
- "IGJ1cw0KPiArDQo+ICtUaGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlIGJ1cyBlbmFibGVzIG1l\n"
- "bW9yeSB0cmFuc2ZlcnMgYmV0d2Vlbg0KPiBpbnRlcm5hbCBhbmQNCj4gK2V4dGVybmFsIG1lbW9y\n"
- "eS4gQ2FuIGJlIHVzZWQgdG8gYXR0YWNoIHZhcmlvdXMgaGlnaCBzcGVlZCBkZXZpY2VzDQo+IHN1\n"
- "Y2ggYXMNCj4gK3N5bmNocm9ub3VzL2FzeW5jaHJvbm91cyBOT1IsIEZQR0EsIFVBUlRTIGFuZCBt\n"
- "b3JlLg0KPiArDQo+ICtUaGUgYWN0dWFsIGRldmljZXMgYXJlIGluc3RhbnRpYXRlZCBmcm9tIHRo\n"
- "ZSBjaGlsZCBub2RlcyBvZiBhIEdNSQ0KPiBub2RlLg0KPiArDQo+ICtSZXF1aXJlZCBwcm9wZXJ0\n"
- "aWVzOg0KPiArIC0gY29tcGF0aWJsZSA6IFNob3VsZCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93\n"
- "aW5nOg0KPiArwqDCoMKgwqDCoMKgwqDCoEZvciBUZWdyYTIwIG11c3QgY29udGFpbiAibnZpZGlh\n"
- "LHRlZ3JhMjAtZ21pIi4NCj4gK8KgwqDCoMKgwqDCoMKgwqBGb3IgVGVncmEzMCBtdXN0IGNvbnRh\n"
- "aW4gIm52aWRpYSx0ZWdyYTMwLWdtaSIuDQo+ICsgLSByZWc6IFNob3VsZCBjb250YWluIEdNSSBj\n"
- "b250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLg0KPiArIC0gY2xvY2tzOiBN\n"
- "dXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuDQo+ICsg\n"
- "LSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczogImdtaSIN\n"
- "Cj4gKyAtIHJlc2V0cyA6IE11c3QgY29udGFpbiBhbiBlbnRyeSBmb3IgZWFjaCBlbnRyeSBpbiBy\n"
- "ZXNldC1uYW1lcy4NCj4gKyAtIHJlc2V0LW5hbWVzIDogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dp\n"
- "bmcgZW50cmllczogImdtaSINCj4gKyAtICNhZGRyZXNzLWNlbGxzOiBUaGUgbnVtYmVyIG9mIGNl\n"
- "bGxzIHVzZWQgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQo+IGJhc2UNCj4gK8KgwqDCoGFkZHJlc3Nl\n"
- "cyBpbiB0aGUgR01JIGFkZHJlc3Mgc3BhY2UuIFNob3VsZCBiZSAxLg0KPiArIC0gI3NpemUtY2Vs\n"
- "bHM6IFRoZSBudW1iZXIgb2YgY2VsbHMgdXNlZCB0byByZXByZXNlbnQgdGhlIHNpemUgb2YgYW4N\n"
- "Cj4gYWRkcmVzcw0KPiArwqDCoMKgcmFuZ2UgaW4gdGhlIEdNSSBhZGRyZXNzIHNwYWNlLiBTaG91\n"
- "bGQgYmUgMS4NCj4gKyAtIHJhbmdlczogTXVzdCBiZSBzZXQgdXAgdG8gcmVmbGVjdCB0aGUgbWVt\n"
- "b3J5IGxheW91dCB3aXRoIHRocmVlDQo+IGludGVnZXIgdmFsdWVzDQo+ICvCoMKgwqBmb3IgZWFj\n"
- "aCBjaGlwLXNlbGVjdCBsaW5lIGluIHVzZSAob25seSBvbmUgZW50cnkgaXMgc3VwcG9ydGVkLA0K\n"
- "PiBzZWUgYmVsb3cNCj4gK8KgwqDCoGNvbW1lbnRzKToNCj4gK8KgwqDCoDxjcy1udW1iZXI+IDxw\n"
- "aHlzaWNhbCBhZGRyZXNzIG9mIG1hcHBpbmc+IDxzaXplPg0KPiArDQo+ICtOb3RlIHRoYXQgdGhl\n"
- "IEdNSSBjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgYW55IGludGVybmFsIGNoaXAtc2VsZWN0DQo+\n"
- "IGFkZHJlc3MNCj4gK2RlY29kaW5nLCBiZWNhdXNlIG9mIHRoYXQgY2hpcC1zZWxlY3RzIGVpdGhl\n"
- "ciBuZWVkIHRvIGJlIG1hbmFnZWQgdmlhDQo+IHNvZnR3YXJlDQo+ICtvciBieSBlbXBsb3lpbmcg\n"
- "ZXh0ZXJuYWwgY2hpcC1zZWxlY3QgZGVjb2RpbmcgbG9naWMuDQo+ICsNCj4gK0lmIGV4dGVybmFs\n"
- "IGNoaXAtc2VsZWN0IGxvZ2ljIGlzIHVzZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBkZXZpY2VzIGl0\n"
- "DQo+IGlzIGFzc3VtZWQNCj4gK3RoYXQgdGhlIGRldmljZXMgdXNlIHRoZSBzYW1lIHRpbWluZyBh\n"
- "bmQgc28gYXJlIHByb2JhYmx5IHRoZSBzYW1lDQo+IHR5cGUuIEl0IGFsc28NCj4gK2Fzc3VtZXMg\n"
- "dGhhdCB0aGV5IGNhbiBmaXQgaW4gdGhlIDI1Nk1CIGFkZHJlc3MgcmFuZ2UuIEluIHRoaXMgY2Fz\n"
- "ZQ0KPiBvbmx5IG9uZQ0KPiArY2hpbGQgZGV2aWNlIGlzIHN1cHBvcnRlZCB3aGljaCByZXByZXNl\n"
- "bnRzIHRoZSBhY3RpdmUgY2hpcC1zZWxlY3QNCj4gbGluZSwgc2VlDQo+ICtleGFtcGxlcyBmb3Ig\n"
- "bW9yZSBpbnNpZ2h0Lg0KPiArDQo+ICtSZXF1aXJlZCBjaGlsZCBjcyBub2RlIHByb3BlcnRpZXM6\n"
- "DQo+ICsgLSByZWc6IEZpcnN0IGVudHJ5IHNob3VsZCBjb250YWluIHRoZSBhY3RpdmUgY2hpcC1z\n"
- "ZWxlY3QgbnVtYmVyDQo+ICsNCj4gK09wdGlvbmFsIGNoaWxkIGNzIG5vZGUgcHJvcGVydGllczoN\n"
- "Cj4gKw0KPiArIC0gbnZpZGlhLHNub3ItZGF0YS13aWR0aC0zMmJpdDogVXNlIDMyYml0IGRhdGEt\n"
- "YnVzLCBkZWZhdWx0IGlzDQo+IDE2Yml0Lg0KPiArIC0gbnZpZGlhLHNub3ItbXV4LW1vZGU6IEVu\n"
- "YWJsZSBhZGRyZXNzL2RhdGEgTVVYIG1vZGUuDQo+ICsgLSBudmlkaWEsc25vci1yZHktYWN0aXZl\n"
- "LWJlZm9yZS1kYXRhOiBBc3NlcnQgUkRZIHNpZ25hbCBvbmUgY3ljbGUNCj4gYmVmb3JlIGRhdGEu\n"
- "DQo+ICvCoMKgwqBJZiBvbWl0dGVkIGl0IHdpbGwgYmUgYXNzZXJ0ZWQgd2l0aCBkYXRhLg0KPiAr\n"
- "IC0gbnZpZGlhLHNub3ItcmR5LWludjogUkRZIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0g\n"
- "bnZpZGlhLHNub3ItYWR2LWludjogQURWIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0gbnZp\n"
- "ZGlhLHNub3Itb2UtaW52OiBXRS9PRSBzaWduYWwgaXMgYWN0aXZlIGhpZ2gNCj4gKyAtIG52aWRp\n"
- "YSxzbm9yLWNzLWludjogQ1Mgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoDQo+ICsNCj4gK8KgwqBOb3Rl\n"
- "IHRoYXQgdGhlcmUgaXMgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGltaW5nIHZhbHVl\n"
- "cy4NCj4gK8KgwqBGcm9tIFRlZ3JhIFRSTToNCj4gK8KgwqBQcm9ncmFtbWluZyAwIG1lYW5zIDEg\n"
- "Y2xvY2sgY3ljbGU6IGFjdHVhbCBjeWNsZSA9IHByb2dyYW1tZWQgY3ljbGUNCj4gKyAxDQo+ICsN\n"
- "Cj4gKyAtIG52aWRpYSxzbm9yLW11eGVkLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIE1VWCBhZGRy\n"
- "ZXNzL2RhdGENCj4gYXNzZXJ0ZWQgb24gdGhlDQo+ICvCoMKgwqBidXMuIFZhbGlkIHZhbHVlcyBh\n"
- "cmUgMC0xNSwgZGVmYXVsdCBpcyAxDQo+ICsgLSBudmlkaWEsc25vci1ob2xkLXdpZHRoOiBOdW1i\n"
- "ZXIgb2YgY3ljbGVzIENFIHN0YXlzIGFzc2VydGVkIGFmdGVyDQo+IHRoZQ0KPiArwqDCoMKgZGUt\n"
- "YXNzZXJ0aW9uIG9mIFdSX04gKGluIGNhc2Ugb2YgU0xBVkUvTUFTVEVSIFJlcXVlc3QpIG9yIE9F\n"
- "X04NCj4gK8KgwqDCoChpbiBjYXNlIG9mIE1BU1RFUiBSZXF1ZXN0KS4gVmFsaWQgdmFsdWVzIGFy\n"
- "ZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAtIG52aWRpYSxzbm9yLWFkdi13aWR0aDogTnVtYmVy\n"
- "IG9mIGN5Y2xlcyBkdXJpbmcgd2hpY2ggQURWIHN0YXlzDQo+IGFzc2VydGVkLg0KPiArwqDCoMKg\n"
- "VmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDEuDQo+ICsgLSBudmlkaWEsc25vci1j\n"
- "ZS13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBiZWZvcmUgQ0UgaXMgYXNzZXJ0ZWQuDQo+ICvCoMKg\n"
- "wqBWYWxpZCB2YWx1ZXMgYXJlIDAtMTUsIGRlZmF1bHQgaXMgNA0KPiArIC0gbnZpZGlhLHNub3It\n"
- "d2Utd2lkdGg6IE51bWJlciBvZiBjeWNsZXMgZHVyaW5nIHdoaWNoIFdFIHN0YXlzDQo+IGFzc2Vy\n"
- "dGVkLg0KPiArwqDCoMKgVmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAt\n"
- "IG52aWRpYSxzbm9yLW9lLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIGR1cmluZyB3aGljaCBPRSBz\n"
- "dGF5cw0KPiBhc3NlcnRlZC4NCj4gK8KgwqDCoFZhbGlkIHZhbHVlcyBhcmUgMC0yNTUsIGRlZmF1\n"
- "bHQgaXMgMQ0KPiArIC0gbnZpZGlhLHNub3Itd2FpdC13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBi\n"
- "ZWZvcmUgUkVBRFkgaXMNCj4gYXNzZXJ0ZWQuDQo+ICvCoMKgwqBWYWxpZCB2YWx1ZXMgYXJlIDAt\n"
- "MjU1LCBkZWZhdWx0IGlzIDMNCj4gKw0KPiArRXhhbXBsZSB3aXRoIHR3byBTSkExMDAwIENBTiBj\n"
- "b250cm9sbGVycyBjb25uZWN0ZWQgdG8gdGhlIEdNSSBidXMuDQo+IFdlIHdyYXAgdGhlDQo+ICtj\n"
- "b250cm9sbGVycyB3aXRoIGEgc2ltcGxlLWJ1cyBub2RlIHNpbmNlIHRoZXkgYXJlIGFsbCBjb25u\n"
- "ZWN0ZWQgdG8NCj4gdGhlIHNhbWUNCj4gK2NoaXAtc2VsZWN0IChDUzQpLCBpbiB0aGlzIGV4YW1w\n"
- "bGUgZXh0ZXJuYWwgYWRkcmVzcyBkZWNvZGluZyBpcw0KPiBwcm92aWRlZDoNCj4gKw0KPiArZ21p\n"
- "QDcwMDkwMDAwIHsNCg0KSXQncyBhY3R1YWxseSA3MDAwOTAwMC4NCg0KPiArCWNvbXBhdGlibGUg\n"
- "PSAibnZpZGlhLHRlZ3JhMjAtZ21pIjsNCj4gKwlyZWcgPSA8MHg3MDAwOTAwMCAweDEwMDA+Ow0K\n"
- "PiArCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCWNs\n"
- "b2NrcyA9IDwmdGVncmFfY2FyIFRFR1JBMjBfQ0xLX05PUj47DQo+ICsJY2xvY2stbmFtZXMgPSAi\n"
- "Z21pIjsNCj4gKwlyZXNldHMgPSA8JnRlZ3JhX2NhciA0Mj47DQo+ICsJcmVzZXQtbmFtZXMgPSAi\n"
- "Z21pIjsNCj4gKwlyYW5nZXMgPSA8NCAweDQ4MDAwMDAwIDB4N2ZmZmZmZj47DQo+ICsNCj4gKwlz\n"
- "dGF0dXMgPSAiZGlzYWJsZWQiOw0KDQpJIGd1ZXNzIGluIGFuIGV4YW1wbGUgb25lIGNvdWxkIGV2\n"
- "ZW4gc2V0IHRoaXMgdG8gb2theS4NCg0KPiArDQo+ICsJYnVzQDQgew0KPiArCQljb21wYXRpYmxl\n"
- "ID0gInNpbXBsZS1idXMiOw0KPiArCQlyZWcgPSA8ND47DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0g\n"
- "PDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJcmFuZ2VzID0gPDAgNCAweDQwMTAw\n"
- "PjsNCj4gKw0KPiArCQludmlkaWEsc25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2\n"
- "LWludjsNCj4gKw0KPiArCQljYW5AMCB7DQo+ICsJCQlyZWcgPSA8MCAweDEwMD47DQo+ICsJCQku\n"
- "Li4NCj4gKwkJfTsNCj4gKw0KPiArCQljYW5ANDAwMDAgew0KPiArCQkJcmVnID0gPDB4NDAwMDAg\n"
- "MHgxMDA+Ow0KPiArCQkJLi4uDQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gK0V4YW1w\n"
- "bGUgd2l0aCBvbmUgU0pBMTAwMCBDQU4gY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhlIEdNSSBi\n"
- "dXMNCj4gK29uIENTNDoNCj4gKw0KPiArZ21pQDcwMDkwMDAwIHsNCg0KU2FtZSBoZXJlLg0KDQo+\n"
- "ICsJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmEyMC1nbWkiOw0KPiArCXJlZyA9IDwweDcwMDA5\n"
- "MDAwIDB4MTAwMD47DQo+ICsJI2FkZHJlc3MtY2VsbHMgPSA8MT47DQo+ICsJI3NpemUtY2VsbHMg\n"
- "PSA8MT47DQo+ICsJY2xvY2tzID0gPCZ0ZWdyYV9jYXIgVEVHUkEyMF9DTEtfTk9SPjsNCj4gKwlj\n"
- "bG9jay1uYW1lcyA9ICJnbWkiOw0KPiArCXJlc2V0cyA9IDwmdGVncmFfY2FyIDQyPjsNCj4gKwly\n"
- "ZXNldC1uYW1lcyA9ICJnbWkiOw0KPiArCXJhbmdlcyA9IDw0IDB4NDgwMDAwMDAgMHg3ZmZmZmZm\n"
- "PjsNCj4gKw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQoNClNhbWUgaGVyZS4NCg0KPiArDQo+\n"
- "ICsJY2FuQDQgew0KPiArCQlyZWcgPSA8NCAweDEwMD47DQo+ICsJCS4uLg0KPiArCQludmlkaWEs\n"
- "c25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2LWludjsNCj4gKwl9Ow0KPiArfTsN\n"
- Cj4gLS0NCj4gMi4xLjQ=
+ "On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote:\n"
+ "> From: Mirza Krak <mirza.krak@gmail.com>\n"
+ "> \n"
+ "> Document the devicetree bindings for the Generic Memory Interface\n"
+ "> (GMI)\n"
+ "> bus driver found on Tegra SOCs.\n"
+ "> \n"
+ "> Signed-off-by: Mirza Krak <mirza.krak@gmail.com>\n"
+ "> ---\n"
+ "> Changes in v2:\n"
+ "> - Updated examples and some information based on comments from Jon\n"
+ "> Hunter.\n"
+ "> \n"
+ "> ?.../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132\n"
+ "> +++++++++++++++++++++\n"
+ "> ?1 file changed, 132 insertions(+)\n"
+ "> ?create mode 100644\n"
+ "> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt\n"
+ "> \n"
+ "> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20-\n"
+ "> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20-\n"
+ "> gmi.txt\n"
+ "> new file mode 100644\n"
+ "> index 0000000..8c1e15f\n"
+ "> --- /dev/null\n"
+ "> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt\n"
+ "> @@ -0,0 +1,132 @@\n"
+ "> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus\n"
+ "> +\n"
+ "> +The Generic Memory Interface bus enables memory transfers between\n"
+ "> internal and\n"
+ "> +external memory. Can be used to attach various high speed devices\n"
+ "> such as\n"
+ "> +synchronous/asynchronous NOR, FPGA, UARTS and more.\n"
+ "> +\n"
+ "> +The actual devices are instantiated from the child nodes of a GMI\n"
+ "> node.\n"
+ "> +\n"
+ "> +Required properties:\n"
+ "> + - compatible : Should contain one of the following:\n"
+ "> +????????For Tegra20 must contain \"nvidia,tegra20-gmi\".\n"
+ "> +????????For Tegra30 must contain \"nvidia,tegra30-gmi\".\n"
+ "> + - reg: Should contain GMI controller registers location and length.\n"
+ "> + - clocks: Must contain an entry for each entry in clock-names.\n"
+ "> + - clock-names: Must include the following entries: \"gmi\"\n"
+ "> + - resets : Must contain an entry for each entry in reset-names.\n"
+ "> + - reset-names : Must include the following entries: \"gmi\"\n"
+ "> + - #address-cells: The number of cells used to represent physical\n"
+ "> base\n"
+ "> +???addresses in the GMI address space. Should be 1.\n"
+ "> + - #size-cells: The number of cells used to represent the size of an\n"
+ "> address\n"
+ "> +???range in the GMI address space. Should be 1.\n"
+ "> + - ranges: Must be set up to reflect the memory layout with three\n"
+ "> integer values\n"
+ "> +???for each chip-select line in use (only one entry is supported,\n"
+ "> see below\n"
+ "> +???comments):\n"
+ "> +???<cs-number> <physical address of mapping> <size>\n"
+ "> +\n"
+ "> +Note that the GMI controller does not have any internal chip-select\n"
+ "> address\n"
+ "> +decoding, because of that chip-selects either need to be managed via\n"
+ "> software\n"
+ "> +or by employing external chip-select decoding logic.\n"
+ "> +\n"
+ "> +If external chip-select logic is used to support multiple devices it\n"
+ "> is assumed\n"
+ "> +that the devices use the same timing and so are probably the same\n"
+ "> type. It also\n"
+ "> +assumes that they can fit in the 256MB address range. In this case\n"
+ "> only one\n"
+ "> +child device is supported which represents the active chip-select\n"
+ "> line, see\n"
+ "> +examples for more insight.\n"
+ "> +\n"
+ "> +Required child cs node properties:\n"
+ "> + - reg: First entry should contain the active chip-select number\n"
+ "> +\n"
+ "> +Optional child cs node properties:\n"
+ "> +\n"
+ "> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is\n"
+ "> 16bit.\n"
+ "> + - nvidia,snor-mux-mode: Enable address/data MUX mode.\n"
+ "> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle\n"
+ "> before data.\n"
+ "> +???If omitted it will be asserted with data.\n"
+ "> + - nvidia,snor-rdy-inv: RDY signal is active high\n"
+ "> + - nvidia,snor-adv-inv: ADV signal is active high\n"
+ "> + - nvidia,snor-oe-inv: WE/OE signal is active high\n"
+ "> + - nvidia,snor-cs-inv: CS signal is active high\n"
+ "> +\n"
+ "> +??Note that there is some special handling for the timing values.\n"
+ "> +??From Tegra TRM:\n"
+ "> +??Programming 0 means 1 clock cycle: actual cycle = programmed cycle\n"
+ "> + 1\n"
+ "> +\n"
+ "> + - nvidia,snor-muxed-width: Number of cycles MUX address/data\n"
+ "> asserted on the\n"
+ "> +???bus. Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after\n"
+ "> the\n"
+ "> +???de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N\n"
+ "> +???(in case of MASTER Request). Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-adv-width: Number of cycles during which ADV stays\n"
+ "> asserted.\n"
+ "> +???Valid values are 0-15, default is 1.\n"
+ "> + - nvidia,snor-ce-width: Number of cycles before CE is asserted.\n"
+ "> +???Valid values are 0-15, default is 4\n"
+ "> + - nvidia,snor-we-width: Number of cycles during which WE stays\n"
+ "> asserted.\n"
+ "> +???Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-oe-width: Number of cycles during which OE stays\n"
+ "> asserted.\n"
+ "> +???Valid values are 0-255, default is 1\n"
+ "> + - nvidia,snor-wait-width: Number of cycles before READY is\n"
+ "> asserted.\n"
+ "> +???Valid values are 0-255, default is 3\n"
+ "> +\n"
+ "> +Example with two SJA1000 CAN controllers connected to the GMI bus.\n"
+ "> We wrap the\n"
+ "> +controllers with a simple-bus node since they are all connected to\n"
+ "> the same\n"
+ "> +chip-select (CS4), in this example external address decoding is\n"
+ "> provided:\n"
+ "> +\n"
+ "> +gmi at 70090000 {\n"
+ "\n"
+ "It's actually 70009000.\n"
+ "\n"
+ "> +\tcompatible = \"nvidia,tegra20-gmi\";\n"
+ "> +\treg = <0x70009000 0x1000>;\n"
+ "> +\t#address-cells = <1>;\n"
+ "> +\t#size-cells = <1>;\n"
+ "> +\tclocks = <&tegra_car TEGRA20_CLK_NOR>;\n"
+ "> +\tclock-names = \"gmi\";\n"
+ "> +\tresets = <&tegra_car 42>;\n"
+ "> +\treset-names = \"gmi\";\n"
+ "> +\tranges = <4 0x48000000 0x7ffffff>;\n"
+ "> +\n"
+ "> +\tstatus = \"disabled\";\n"
+ "\n"
+ "I guess in an example one could even set this to okay.\n"
+ "\n"
+ "> +\n"
+ "> +\tbus at 4 {\n"
+ "> +\t\tcompatible = \"simple-bus\";\n"
+ "> +\t\treg = <4>;\n"
+ "> +\t\t#address-cells = <1>;\n"
+ "> +\t\t#size-cells = <1>;\n"
+ "> +\t\tranges = <0 4 0x40100>;\n"
+ "> +\n"
+ "> +\t\tnvidia,snor-mux-mode;\n"
+ "> +\t\tnvidia,snor-adv-inv;\n"
+ "> +\n"
+ "> +\t\tcan at 0 {\n"
+ "> +\t\t\treg = <0 0x100>;\n"
+ "> +\t\t\t...\n"
+ "> +\t\t};\n"
+ "> +\n"
+ "> +\t\tcan at 40000 {\n"
+ "> +\t\t\treg = <0x40000 0x100>;\n"
+ "> +\t\t\t...\n"
+ "> +\t\t};\n"
+ "> +\t};\n"
+ "> +};\n"
+ "> +\n"
+ "> +Example with one SJA1000 CAN controller connected to the GMI bus\n"
+ "> +on CS4:\n"
+ "> +\n"
+ "> +gmi at 70090000 {\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ "> +\tcompatible = \"nvidia,tegra20-gmi\";\n"
+ "> +\treg = <0x70009000 0x1000>;\n"
+ "> +\t#address-cells = <1>;\n"
+ "> +\t#size-cells = <1>;\n"
+ "> +\tclocks = <&tegra_car TEGRA20_CLK_NOR>;\n"
+ "> +\tclock-names = \"gmi\";\n"
+ "> +\tresets = <&tegra_car 42>;\n"
+ "> +\treset-names = \"gmi\";\n"
+ "> +\tranges = <4 0x48000000 0x7ffffff>;\n"
+ "> +\n"
+ "> +\tstatus = \"disabled\";\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ "> +\n"
+ "> +\tcan at 4 {\n"
+ "> +\t\treg = <4 0x100>;\n"
+ "> +\t\t...\n"
+ "> +\t\tnvidia,snor-mux-mode;\n"
+ "> +\t\tnvidia,snor-adv-inv;\n"
+ "> +\t};\n"
+ "> +};\n"
+ "> --\n"
+ > 2.1.4
 
-e80e60be58c895271755a1e67c11c6c15566a8b9b119a08acad3c0546592f4b1
+16709d7adf763ee35da64fc02ccdd4b9573e43c0fb862f5d25a4a51699ed678d

diff --git a/a/1.txt b/N3/1.txt
index 704756d..0f5eb93 100644
--- a/a/1.txt
+++ b/N3/1.txt
@@ -1,114 +1,198 @@
-T24gV2VkLCAyMDE2LTA4LTI0IGF0IDE1OjM3ICswMjAwLCBNaXJ6YSBLcmFrIHdyb3RlOg0KPiBG
-cm9tOiBNaXJ6YSBLcmFrIDxtaXJ6YS5rcmFrQGdtYWlsLmNvbT4NCj4gDQo+IERvY3VtZW50IHRo
-ZSBkZXZpY2V0cmVlIGJpbmRpbmdzIGZvciB0aGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlDQo+
-IChHTUkpDQo+IGJ1cyBkcml2ZXIgZm91bmQgb24gVGVncmEgU09Dcy4NCj4gDQo+IFNpZ25lZC1v
-ZmYtYnk6IE1pcnphIEtyYWsgPG1pcnphLmtyYWtAZ21haWwuY29tPg0KPiAtLS0NCj4gQ2hhbmdl
-cyBpbiB2MjoNCj4gLSBVcGRhdGVkIGV4YW1wbGVzIGFuZCBzb21lIGluZm9ybWF0aW9uIGJhc2Vk
-IG9uIGNvbW1lbnRzIGZyb20gSm9uDQo+IEh1bnRlci4NCj4gDQo+IMKgLi4uL2RldmljZXRyZWUv
-YmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQgfCAxMzINCj4gKysrKysrKysrKysr
-KysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspDQo+IMKgY3Jl
-YXRlIG1vZGUgMTAwNjQ0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMv
-bnZpZGlhLHRlZ3JhMjAtZ21pLnR4dA0KPiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v
-ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvbnZpZGlhLHRlZ3JhMjAtDQo+IGdtaS50eHQgYi9Eb2N1
-bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLQ0KPiBnbWku
-dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjhjMWUxNWYNCj4g
-LS0tIC9kZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv
-YnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQNCj4gQEAgLTAsMCArMSwxMzIgQEANCj4gK0Rldmlj
-ZSB0cmVlIGJpbmRpbmdzIGZvciBOVklESUEgVGVncmEgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNl
-IGJ1cw0KPiArDQo+ICtUaGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlIGJ1cyBlbmFibGVzIG1l
-bW9yeSB0cmFuc2ZlcnMgYmV0d2Vlbg0KPiBpbnRlcm5hbCBhbmQNCj4gK2V4dGVybmFsIG1lbW9y
-eS4gQ2FuIGJlIHVzZWQgdG8gYXR0YWNoIHZhcmlvdXMgaGlnaCBzcGVlZCBkZXZpY2VzDQo+IHN1
-Y2ggYXMNCj4gK3N5bmNocm9ub3VzL2FzeW5jaHJvbm91cyBOT1IsIEZQR0EsIFVBUlRTIGFuZCBt
-b3JlLg0KPiArDQo+ICtUaGUgYWN0dWFsIGRldmljZXMgYXJlIGluc3RhbnRpYXRlZCBmcm9tIHRo
-ZSBjaGlsZCBub2RlcyBvZiBhIEdNSQ0KPiBub2RlLg0KPiArDQo+ICtSZXF1aXJlZCBwcm9wZXJ0
-aWVzOg0KPiArIC0gY29tcGF0aWJsZSA6IFNob3VsZCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93
-aW5nOg0KPiArwqDCoMKgwqDCoMKgwqDCoEZvciBUZWdyYTIwIG11c3QgY29udGFpbiAibnZpZGlh
-LHRlZ3JhMjAtZ21pIi4NCj4gK8KgwqDCoMKgwqDCoMKgwqBGb3IgVGVncmEzMCBtdXN0IGNvbnRh
-aW4gIm52aWRpYSx0ZWdyYTMwLWdtaSIuDQo+ICsgLSByZWc6IFNob3VsZCBjb250YWluIEdNSSBj
-b250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLg0KPiArIC0gY2xvY2tzOiBN
-dXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuDQo+ICsg
-LSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczogImdtaSIN
-Cj4gKyAtIHJlc2V0cyA6IE11c3QgY29udGFpbiBhbiBlbnRyeSBmb3IgZWFjaCBlbnRyeSBpbiBy
-ZXNldC1uYW1lcy4NCj4gKyAtIHJlc2V0LW5hbWVzIDogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dp
-bmcgZW50cmllczogImdtaSINCj4gKyAtICNhZGRyZXNzLWNlbGxzOiBUaGUgbnVtYmVyIG9mIGNl
-bGxzIHVzZWQgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQo+IGJhc2UNCj4gK8KgwqDCoGFkZHJlc3Nl
-cyBpbiB0aGUgR01JIGFkZHJlc3Mgc3BhY2UuIFNob3VsZCBiZSAxLg0KPiArIC0gI3NpemUtY2Vs
-bHM6IFRoZSBudW1iZXIgb2YgY2VsbHMgdXNlZCB0byByZXByZXNlbnQgdGhlIHNpemUgb2YgYW4N
-Cj4gYWRkcmVzcw0KPiArwqDCoMKgcmFuZ2UgaW4gdGhlIEdNSSBhZGRyZXNzIHNwYWNlLiBTaG91
-bGQgYmUgMS4NCj4gKyAtIHJhbmdlczogTXVzdCBiZSBzZXQgdXAgdG8gcmVmbGVjdCB0aGUgbWVt
-b3J5IGxheW91dCB3aXRoIHRocmVlDQo+IGludGVnZXIgdmFsdWVzDQo+ICvCoMKgwqBmb3IgZWFj
-aCBjaGlwLXNlbGVjdCBsaW5lIGluIHVzZSAob25seSBvbmUgZW50cnkgaXMgc3VwcG9ydGVkLA0K
-PiBzZWUgYmVsb3cNCj4gK8KgwqDCoGNvbW1lbnRzKToNCj4gK8KgwqDCoDxjcy1udW1iZXI+IDxw
-aHlzaWNhbCBhZGRyZXNzIG9mIG1hcHBpbmc+IDxzaXplPg0KPiArDQo+ICtOb3RlIHRoYXQgdGhl
-IEdNSSBjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgYW55IGludGVybmFsIGNoaXAtc2VsZWN0DQo+
-IGFkZHJlc3MNCj4gK2RlY29kaW5nLCBiZWNhdXNlIG9mIHRoYXQgY2hpcC1zZWxlY3RzIGVpdGhl
-ciBuZWVkIHRvIGJlIG1hbmFnZWQgdmlhDQo+IHNvZnR3YXJlDQo+ICtvciBieSBlbXBsb3lpbmcg
-ZXh0ZXJuYWwgY2hpcC1zZWxlY3QgZGVjb2RpbmcgbG9naWMuDQo+ICsNCj4gK0lmIGV4dGVybmFs
-IGNoaXAtc2VsZWN0IGxvZ2ljIGlzIHVzZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBkZXZpY2VzIGl0
-DQo+IGlzIGFzc3VtZWQNCj4gK3RoYXQgdGhlIGRldmljZXMgdXNlIHRoZSBzYW1lIHRpbWluZyBh
-bmQgc28gYXJlIHByb2JhYmx5IHRoZSBzYW1lDQo+IHR5cGUuIEl0IGFsc28NCj4gK2Fzc3VtZXMg
-dGhhdCB0aGV5IGNhbiBmaXQgaW4gdGhlIDI1Nk1CIGFkZHJlc3MgcmFuZ2UuIEluIHRoaXMgY2Fz
-ZQ0KPiBvbmx5IG9uZQ0KPiArY2hpbGQgZGV2aWNlIGlzIHN1cHBvcnRlZCB3aGljaCByZXByZXNl
-bnRzIHRoZSBhY3RpdmUgY2hpcC1zZWxlY3QNCj4gbGluZSwgc2VlDQo+ICtleGFtcGxlcyBmb3Ig
-bW9yZSBpbnNpZ2h0Lg0KPiArDQo+ICtSZXF1aXJlZCBjaGlsZCBjcyBub2RlIHByb3BlcnRpZXM6
-DQo+ICsgLSByZWc6IEZpcnN0IGVudHJ5IHNob3VsZCBjb250YWluIHRoZSBhY3RpdmUgY2hpcC1z
-ZWxlY3QgbnVtYmVyDQo+ICsNCj4gK09wdGlvbmFsIGNoaWxkIGNzIG5vZGUgcHJvcGVydGllczoN
-Cj4gKw0KPiArIC0gbnZpZGlhLHNub3ItZGF0YS13aWR0aC0zMmJpdDogVXNlIDMyYml0IGRhdGEt
-YnVzLCBkZWZhdWx0IGlzDQo+IDE2Yml0Lg0KPiArIC0gbnZpZGlhLHNub3ItbXV4LW1vZGU6IEVu
-YWJsZSBhZGRyZXNzL2RhdGEgTVVYIG1vZGUuDQo+ICsgLSBudmlkaWEsc25vci1yZHktYWN0aXZl
-LWJlZm9yZS1kYXRhOiBBc3NlcnQgUkRZIHNpZ25hbCBvbmUgY3ljbGUNCj4gYmVmb3JlIGRhdGEu
-DQo+ICvCoMKgwqBJZiBvbWl0dGVkIGl0IHdpbGwgYmUgYXNzZXJ0ZWQgd2l0aCBkYXRhLg0KPiAr
-IC0gbnZpZGlhLHNub3ItcmR5LWludjogUkRZIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0g
-bnZpZGlhLHNub3ItYWR2LWludjogQURWIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0gbnZp
-ZGlhLHNub3Itb2UtaW52OiBXRS9PRSBzaWduYWwgaXMgYWN0aXZlIGhpZ2gNCj4gKyAtIG52aWRp
-YSxzbm9yLWNzLWludjogQ1Mgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoDQo+ICsNCj4gK8KgwqBOb3Rl
-IHRoYXQgdGhlcmUgaXMgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGltaW5nIHZhbHVl
-cy4NCj4gK8KgwqBGcm9tIFRlZ3JhIFRSTToNCj4gK8KgwqBQcm9ncmFtbWluZyAwIG1lYW5zIDEg
-Y2xvY2sgY3ljbGU6IGFjdHVhbCBjeWNsZSA9IHByb2dyYW1tZWQgY3ljbGUNCj4gKyAxDQo+ICsN
-Cj4gKyAtIG52aWRpYSxzbm9yLW11eGVkLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIE1VWCBhZGRy
-ZXNzL2RhdGENCj4gYXNzZXJ0ZWQgb24gdGhlDQo+ICvCoMKgwqBidXMuIFZhbGlkIHZhbHVlcyBh
-cmUgMC0xNSwgZGVmYXVsdCBpcyAxDQo+ICsgLSBudmlkaWEsc25vci1ob2xkLXdpZHRoOiBOdW1i
-ZXIgb2YgY3ljbGVzIENFIHN0YXlzIGFzc2VydGVkIGFmdGVyDQo+IHRoZQ0KPiArwqDCoMKgZGUt
-YXNzZXJ0aW9uIG9mIFdSX04gKGluIGNhc2Ugb2YgU0xBVkUvTUFTVEVSIFJlcXVlc3QpIG9yIE9F
-X04NCj4gK8KgwqDCoChpbiBjYXNlIG9mIE1BU1RFUiBSZXF1ZXN0KS4gVmFsaWQgdmFsdWVzIGFy
-ZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAtIG52aWRpYSxzbm9yLWFkdi13aWR0aDogTnVtYmVy
-IG9mIGN5Y2xlcyBkdXJpbmcgd2hpY2ggQURWIHN0YXlzDQo+IGFzc2VydGVkLg0KPiArwqDCoMKg
-VmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDEuDQo+ICsgLSBudmlkaWEsc25vci1j
-ZS13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBiZWZvcmUgQ0UgaXMgYXNzZXJ0ZWQuDQo+ICvCoMKg
-wqBWYWxpZCB2YWx1ZXMgYXJlIDAtMTUsIGRlZmF1bHQgaXMgNA0KPiArIC0gbnZpZGlhLHNub3It
-d2Utd2lkdGg6IE51bWJlciBvZiBjeWNsZXMgZHVyaW5nIHdoaWNoIFdFIHN0YXlzDQo+IGFzc2Vy
-dGVkLg0KPiArwqDCoMKgVmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAt
-IG52aWRpYSxzbm9yLW9lLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIGR1cmluZyB3aGljaCBPRSBz
-dGF5cw0KPiBhc3NlcnRlZC4NCj4gK8KgwqDCoFZhbGlkIHZhbHVlcyBhcmUgMC0yNTUsIGRlZmF1
-bHQgaXMgMQ0KPiArIC0gbnZpZGlhLHNub3Itd2FpdC13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBi
-ZWZvcmUgUkVBRFkgaXMNCj4gYXNzZXJ0ZWQuDQo+ICvCoMKgwqBWYWxpZCB2YWx1ZXMgYXJlIDAt
-MjU1LCBkZWZhdWx0IGlzIDMNCj4gKw0KPiArRXhhbXBsZSB3aXRoIHR3byBTSkExMDAwIENBTiBj
-b250cm9sbGVycyBjb25uZWN0ZWQgdG8gdGhlIEdNSSBidXMuDQo+IFdlIHdyYXAgdGhlDQo+ICtj
-b250cm9sbGVycyB3aXRoIGEgc2ltcGxlLWJ1cyBub2RlIHNpbmNlIHRoZXkgYXJlIGFsbCBjb25u
-ZWN0ZWQgdG8NCj4gdGhlIHNhbWUNCj4gK2NoaXAtc2VsZWN0IChDUzQpLCBpbiB0aGlzIGV4YW1w
-bGUgZXh0ZXJuYWwgYWRkcmVzcyBkZWNvZGluZyBpcw0KPiBwcm92aWRlZDoNCj4gKw0KPiArZ21p
-QDcwMDkwMDAwIHsNCg0KSXQncyBhY3R1YWxseSA3MDAwOTAwMC4NCg0KPiArCWNvbXBhdGlibGUg
-PSAibnZpZGlhLHRlZ3JhMjAtZ21pIjsNCj4gKwlyZWcgPSA8MHg3MDAwOTAwMCAweDEwMDA+Ow0K
-PiArCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCWNs
-b2NrcyA9IDwmdGVncmFfY2FyIFRFR1JBMjBfQ0xLX05PUj47DQo+ICsJY2xvY2stbmFtZXMgPSAi
-Z21pIjsNCj4gKwlyZXNldHMgPSA8JnRlZ3JhX2NhciA0Mj47DQo+ICsJcmVzZXQtbmFtZXMgPSAi
-Z21pIjsNCj4gKwlyYW5nZXMgPSA8NCAweDQ4MDAwMDAwIDB4N2ZmZmZmZj47DQo+ICsNCj4gKwlz
-dGF0dXMgPSAiZGlzYWJsZWQiOw0KDQpJIGd1ZXNzIGluIGFuIGV4YW1wbGUgb25lIGNvdWxkIGV2
-ZW4gc2V0IHRoaXMgdG8gb2theS4NCg0KPiArDQo+ICsJYnVzQDQgew0KPiArCQljb21wYXRpYmxl
-ID0gInNpbXBsZS1idXMiOw0KPiArCQlyZWcgPSA8ND47DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0g
-PDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJcmFuZ2VzID0gPDAgNCAweDQwMTAw
-PjsNCj4gKw0KPiArCQludmlkaWEsc25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2
-LWludjsNCj4gKw0KPiArCQljYW5AMCB7DQo+ICsJCQlyZWcgPSA8MCAweDEwMD47DQo+ICsJCQku
-Li4NCj4gKwkJfTsNCj4gKw0KPiArCQljYW5ANDAwMDAgew0KPiArCQkJcmVnID0gPDB4NDAwMDAg
-MHgxMDA+Ow0KPiArCQkJLi4uDQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gK0V4YW1w
-bGUgd2l0aCBvbmUgU0pBMTAwMCBDQU4gY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhlIEdNSSBi
-dXMNCj4gK29uIENTNDoNCj4gKw0KPiArZ21pQDcwMDkwMDAwIHsNCg0KU2FtZSBoZXJlLg0KDQo+
-ICsJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmEyMC1nbWkiOw0KPiArCXJlZyA9IDwweDcwMDA5
-MDAwIDB4MTAwMD47DQo+ICsJI2FkZHJlc3MtY2VsbHMgPSA8MT47DQo+ICsJI3NpemUtY2VsbHMg
-PSA8MT47DQo+ICsJY2xvY2tzID0gPCZ0ZWdyYV9jYXIgVEVHUkEyMF9DTEtfTk9SPjsNCj4gKwlj
-bG9jay1uYW1lcyA9ICJnbWkiOw0KPiArCXJlc2V0cyA9IDwmdGVncmFfY2FyIDQyPjsNCj4gKwly
-ZXNldC1uYW1lcyA9ICJnbWkiOw0KPiArCXJhbmdlcyA9IDw0IDB4NDgwMDAwMDAgMHg3ZmZmZmZm
-PjsNCj4gKw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQoNClNhbWUgaGVyZS4NCg0KPiArDQo+
-ICsJY2FuQDQgew0KPiArCQlyZWcgPSA8NCAweDEwMD47DQo+ICsJCS4uLg0KPiArCQludmlkaWEs
-c25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2LWludjsNCj4gKwl9Ow0KPiArfTsN
-Cj4gLS0NCj4gMi4xLjQ=
+On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote:
+> From: Mirza Krak <mirza.krak@gmail.com>
+> 
+> Document the devicetree bindings for the Generic Memory Interface
+> (GMI)
+> bus driver found on Tegra SOCs.
+> 
+> Signed-off-by: Mirza Krak <mirza.krak@gmail.com>
+> ---
+> Changes in v2:
+> - Updated examples and some information based on comments from Jon
+> Hunter.
+> 
+>  .../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132
+> +++++++++++++++++++++
+>  1 file changed, 132 insertions(+)
+>  create mode 100644
+> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
+> 
+> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20-
+> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20-
+> gmi.txt
+> new file mode 100644
+> index 0000000..8c1e15f
+> --- /dev/null
+> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
+> @@ -0,0 +1,132 @@
+> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus
+> +
+> +The Generic Memory Interface bus enables memory transfers between
+> internal and
+> +external memory. Can be used to attach various high speed devices
+> such as
+> +synchronous/asynchronous NOR, FPGA, UARTS and more.
+> +
+> +The actual devices are instantiated from the child nodes of a GMI
+> node.
+> +
+> +Required properties:
+> + - compatible : Should contain one of the following:
+> +        For Tegra20 must contain "nvidia,tegra20-gmi".
+> +        For Tegra30 must contain "nvidia,tegra30-gmi".
+> + - reg: Should contain GMI controller registers location and length.
+> + - clocks: Must contain an entry for each entry in clock-names.
+> + - clock-names: Must include the following entries: "gmi"
+> + - resets : Must contain an entry for each entry in reset-names.
+> + - reset-names : Must include the following entries: "gmi"
+> + - #address-cells: The number of cells used to represent physical
+> base
+> +   addresses in the GMI address space. Should be 1.
+> + - #size-cells: The number of cells used to represent the size of an
+> address
+> +   range in the GMI address space. Should be 1.
+> + - ranges: Must be set up to reflect the memory layout with three
+> integer values
+> +   for each chip-select line in use (only one entry is supported,
+> see below
+> +   comments):
+> +   <cs-number> <physical address of mapping> <size>
+> +
+> +Note that the GMI controller does not have any internal chip-select
+> address
+> +decoding, because of that chip-selects either need to be managed via
+> software
+> +or by employing external chip-select decoding logic.
+> +
+> +If external chip-select logic is used to support multiple devices it
+> is assumed
+> +that the devices use the same timing and so are probably the same
+> type. It also
+> +assumes that they can fit in the 256MB address range. In this case
+> only one
+> +child device is supported which represents the active chip-select
+> line, see
+> +examples for more insight.
+> +
+> +Required child cs node properties:
+> + - reg: First entry should contain the active chip-select number
+> +
+> +Optional child cs node properties:
+> +
+> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is
+> 16bit.
+> + - nvidia,snor-mux-mode: Enable address/data MUX mode.
+> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle
+> before data.
+> +   If omitted it will be asserted with data.
+> + - nvidia,snor-rdy-inv: RDY signal is active high
+> + - nvidia,snor-adv-inv: ADV signal is active high
+> + - nvidia,snor-oe-inv: WE/OE signal is active high
+> + - nvidia,snor-cs-inv: CS signal is active high
+> +
+> +  Note that there is some special handling for the timing values.
+> +  From Tegra TRM:
+> +  Programming 0 means 1 clock cycle: actual cycle = programmed cycle
+> + 1
+> +
+> + - nvidia,snor-muxed-width: Number of cycles MUX address/data
+> asserted on the
+> +   bus. Valid values are 0-15, default is 1
+> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after
+> the
+> +   de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N
+> +   (in case of MASTER Request). Valid values are 0-15, default is 1
+> + - nvidia,snor-adv-width: Number of cycles during which ADV stays
+> asserted.
+> +   Valid values are 0-15, default is 1.
+> + - nvidia,snor-ce-width: Number of cycles before CE is asserted.
+> +   Valid values are 0-15, default is 4
+> + - nvidia,snor-we-width: Number of cycles during which WE stays
+> asserted.
+> +   Valid values are 0-15, default is 1
+> + - nvidia,snor-oe-width: Number of cycles during which OE stays
+> asserted.
+> +   Valid values are 0-255, default is 1
+> + - nvidia,snor-wait-width: Number of cycles before READY is
+> asserted.
+> +   Valid values are 0-255, default is 3
+> +
+> +Example with two SJA1000 CAN controllers connected to the GMI bus.
+> We wrap the
+> +controllers with a simple-bus node since they are all connected to
+> the same
+> +chip-select (CS4), in this example external address decoding is
+> provided:
+> +
+> +gmi@70090000 {
+
+It's actually 70009000.
+
+> +	compatible = "nvidia,tegra20-gmi";
+> +	reg = <0x70009000 0x1000>;
+> +	#address-cells = <1>;
+> +	#size-cells = <1>;
+> +	clocks = <&tegra_car TEGRA20_CLK_NOR>;
+> +	clock-names = "gmi";
+> +	resets = <&tegra_car 42>;
+> +	reset-names = "gmi";
+> +	ranges = <4 0x48000000 0x7ffffff>;
+> +
+> +	status = "disabled";
+
+I guess in an example one could even set this to okay.
+
+> +
+> +	bus@4 {
+> +		compatible = "simple-bus";
+> +		reg = <4>;
+> +		#address-cells = <1>;
+> +		#size-cells = <1>;
+> +		ranges = <0 4 0x40100>;
+> +
+> +		nvidia,snor-mux-mode;
+> +		nvidia,snor-adv-inv;
+> +
+> +		can@0 {
+> +			reg = <0 0x100>;
+> +			...
+> +		};
+> +
+> +		can@40000 {
+> +			reg = <0x40000 0x100>;
+> +			...
+> +		};
+> +	};
+> +};
+> +
+> +Example with one SJA1000 CAN controller connected to the GMI bus
+> +on CS4:
+> +
+> +gmi@70090000 {
+
+Same here.
+
+> +	compatible = "nvidia,tegra20-gmi";
+> +	reg = <0x70009000 0x1000>;
+> +	#address-cells = <1>;
+> +	#size-cells = <1>;
+> +	clocks = <&tegra_car TEGRA20_CLK_NOR>;
+> +	clock-names = "gmi";
+> +	resets = <&tegra_car 42>;
+> +	reset-names = "gmi";
+> +	ranges = <4 0x48000000 0x7ffffff>;
+> +
+> +	status = "disabled";
+
+Same here.
+
+> +
+> +	can@4 {
+> +		reg = <4 0x100>;
+> +		...
+> +		nvidia,snor-mux-mode;
+> +		nvidia,snor-adv-inv;
+> +	};
+> +};
+> --
+> 2.1.4
diff --git a/a/content_digest b/N3/content_digest
index 781e5ab..2cb6cfc 100644
--- a/a/content_digest
+++ b/N3/content_digest
@@ -22,119 +22,203 @@
  " linux-clk@vger.kernel.org <linux-clk@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
- "T24gV2VkLCAyMDE2LTA4LTI0IGF0IDE1OjM3ICswMjAwLCBNaXJ6YSBLcmFrIHdyb3RlOg0KPiBG\n"
- "cm9tOiBNaXJ6YSBLcmFrIDxtaXJ6YS5rcmFrQGdtYWlsLmNvbT4NCj4gDQo+IERvY3VtZW50IHRo\n"
- "ZSBkZXZpY2V0cmVlIGJpbmRpbmdzIGZvciB0aGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlDQo+\n"
- "IChHTUkpDQo+IGJ1cyBkcml2ZXIgZm91bmQgb24gVGVncmEgU09Dcy4NCj4gDQo+IFNpZ25lZC1v\n"
- "ZmYtYnk6IE1pcnphIEtyYWsgPG1pcnphLmtyYWtAZ21haWwuY29tPg0KPiAtLS0NCj4gQ2hhbmdl\n"
- "cyBpbiB2MjoNCj4gLSBVcGRhdGVkIGV4YW1wbGVzIGFuZCBzb21lIGluZm9ybWF0aW9uIGJhc2Vk\n"
- "IG9uIGNvbW1lbnRzIGZyb20gSm9uDQo+IEh1bnRlci4NCj4gDQo+IMKgLi4uL2RldmljZXRyZWUv\n"
- "YmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQgfCAxMzINCj4gKysrKysrKysrKysr\n"
- "KysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspDQo+IMKgY3Jl\n"
- "YXRlIG1vZGUgMTAwNjQ0DQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMv\n"
- "bnZpZGlhLHRlZ3JhMjAtZ21pLnR4dA0KPiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v\n"
- "ZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvbnZpZGlhLHRlZ3JhMjAtDQo+IGdtaS50eHQgYi9Eb2N1\n"
- "bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL252aWRpYSx0ZWdyYTIwLQ0KPiBnbWku\n"
- "dHh0DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLjhjMWUxNWYNCj4g\n"
- "LS0tIC9kZXYvbnVsbA0KPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv\n"
- "YnVzL252aWRpYSx0ZWdyYTIwLWdtaS50eHQNCj4gQEAgLTAsMCArMSwxMzIgQEANCj4gK0Rldmlj\n"
- "ZSB0cmVlIGJpbmRpbmdzIGZvciBOVklESUEgVGVncmEgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNl\n"
- "IGJ1cw0KPiArDQo+ICtUaGUgR2VuZXJpYyBNZW1vcnkgSW50ZXJmYWNlIGJ1cyBlbmFibGVzIG1l\n"
- "bW9yeSB0cmFuc2ZlcnMgYmV0d2Vlbg0KPiBpbnRlcm5hbCBhbmQNCj4gK2V4dGVybmFsIG1lbW9y\n"
- "eS4gQ2FuIGJlIHVzZWQgdG8gYXR0YWNoIHZhcmlvdXMgaGlnaCBzcGVlZCBkZXZpY2VzDQo+IHN1\n"
- "Y2ggYXMNCj4gK3N5bmNocm9ub3VzL2FzeW5jaHJvbm91cyBOT1IsIEZQR0EsIFVBUlRTIGFuZCBt\n"
- "b3JlLg0KPiArDQo+ICtUaGUgYWN0dWFsIGRldmljZXMgYXJlIGluc3RhbnRpYXRlZCBmcm9tIHRo\n"
- "ZSBjaGlsZCBub2RlcyBvZiBhIEdNSQ0KPiBub2RlLg0KPiArDQo+ICtSZXF1aXJlZCBwcm9wZXJ0\n"
- "aWVzOg0KPiArIC0gY29tcGF0aWJsZSA6IFNob3VsZCBjb250YWluIG9uZSBvZiB0aGUgZm9sbG93\n"
- "aW5nOg0KPiArwqDCoMKgwqDCoMKgwqDCoEZvciBUZWdyYTIwIG11c3QgY29udGFpbiAibnZpZGlh\n"
- "LHRlZ3JhMjAtZ21pIi4NCj4gK8KgwqDCoMKgwqDCoMKgwqBGb3IgVGVncmEzMCBtdXN0IGNvbnRh\n"
- "aW4gIm52aWRpYSx0ZWdyYTMwLWdtaSIuDQo+ICsgLSByZWc6IFNob3VsZCBjb250YWluIEdNSSBj\n"
- "b250cm9sbGVyIHJlZ2lzdGVycyBsb2NhdGlvbiBhbmQgbGVuZ3RoLg0KPiArIC0gY2xvY2tzOiBN\n"
- "dXN0IGNvbnRhaW4gYW4gZW50cnkgZm9yIGVhY2ggZW50cnkgaW4gY2xvY2stbmFtZXMuDQo+ICsg\n"
- "LSBjbG9jay1uYW1lczogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZW50cmllczogImdtaSIN\n"
- "Cj4gKyAtIHJlc2V0cyA6IE11c3QgY29udGFpbiBhbiBlbnRyeSBmb3IgZWFjaCBlbnRyeSBpbiBy\n"
- "ZXNldC1uYW1lcy4NCj4gKyAtIHJlc2V0LW5hbWVzIDogTXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dp\n"
- "bmcgZW50cmllczogImdtaSINCj4gKyAtICNhZGRyZXNzLWNlbGxzOiBUaGUgbnVtYmVyIG9mIGNl\n"
- "bGxzIHVzZWQgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQo+IGJhc2UNCj4gK8KgwqDCoGFkZHJlc3Nl\n"
- "cyBpbiB0aGUgR01JIGFkZHJlc3Mgc3BhY2UuIFNob3VsZCBiZSAxLg0KPiArIC0gI3NpemUtY2Vs\n"
- "bHM6IFRoZSBudW1iZXIgb2YgY2VsbHMgdXNlZCB0byByZXByZXNlbnQgdGhlIHNpemUgb2YgYW4N\n"
- "Cj4gYWRkcmVzcw0KPiArwqDCoMKgcmFuZ2UgaW4gdGhlIEdNSSBhZGRyZXNzIHNwYWNlLiBTaG91\n"
- "bGQgYmUgMS4NCj4gKyAtIHJhbmdlczogTXVzdCBiZSBzZXQgdXAgdG8gcmVmbGVjdCB0aGUgbWVt\n"
- "b3J5IGxheW91dCB3aXRoIHRocmVlDQo+IGludGVnZXIgdmFsdWVzDQo+ICvCoMKgwqBmb3IgZWFj\n"
- "aCBjaGlwLXNlbGVjdCBsaW5lIGluIHVzZSAob25seSBvbmUgZW50cnkgaXMgc3VwcG9ydGVkLA0K\n"
- "PiBzZWUgYmVsb3cNCj4gK8KgwqDCoGNvbW1lbnRzKToNCj4gK8KgwqDCoDxjcy1udW1iZXI+IDxw\n"
- "aHlzaWNhbCBhZGRyZXNzIG9mIG1hcHBpbmc+IDxzaXplPg0KPiArDQo+ICtOb3RlIHRoYXQgdGhl\n"
- "IEdNSSBjb250cm9sbGVyIGRvZXMgbm90IGhhdmUgYW55IGludGVybmFsIGNoaXAtc2VsZWN0DQo+\n"
- "IGFkZHJlc3MNCj4gK2RlY29kaW5nLCBiZWNhdXNlIG9mIHRoYXQgY2hpcC1zZWxlY3RzIGVpdGhl\n"
- "ciBuZWVkIHRvIGJlIG1hbmFnZWQgdmlhDQo+IHNvZnR3YXJlDQo+ICtvciBieSBlbXBsb3lpbmcg\n"
- "ZXh0ZXJuYWwgY2hpcC1zZWxlY3QgZGVjb2RpbmcgbG9naWMuDQo+ICsNCj4gK0lmIGV4dGVybmFs\n"
- "IGNoaXAtc2VsZWN0IGxvZ2ljIGlzIHVzZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBkZXZpY2VzIGl0\n"
- "DQo+IGlzIGFzc3VtZWQNCj4gK3RoYXQgdGhlIGRldmljZXMgdXNlIHRoZSBzYW1lIHRpbWluZyBh\n"
- "bmQgc28gYXJlIHByb2JhYmx5IHRoZSBzYW1lDQo+IHR5cGUuIEl0IGFsc28NCj4gK2Fzc3VtZXMg\n"
- "dGhhdCB0aGV5IGNhbiBmaXQgaW4gdGhlIDI1Nk1CIGFkZHJlc3MgcmFuZ2UuIEluIHRoaXMgY2Fz\n"
- "ZQ0KPiBvbmx5IG9uZQ0KPiArY2hpbGQgZGV2aWNlIGlzIHN1cHBvcnRlZCB3aGljaCByZXByZXNl\n"
- "bnRzIHRoZSBhY3RpdmUgY2hpcC1zZWxlY3QNCj4gbGluZSwgc2VlDQo+ICtleGFtcGxlcyBmb3Ig\n"
- "bW9yZSBpbnNpZ2h0Lg0KPiArDQo+ICtSZXF1aXJlZCBjaGlsZCBjcyBub2RlIHByb3BlcnRpZXM6\n"
- "DQo+ICsgLSByZWc6IEZpcnN0IGVudHJ5IHNob3VsZCBjb250YWluIHRoZSBhY3RpdmUgY2hpcC1z\n"
- "ZWxlY3QgbnVtYmVyDQo+ICsNCj4gK09wdGlvbmFsIGNoaWxkIGNzIG5vZGUgcHJvcGVydGllczoN\n"
- "Cj4gKw0KPiArIC0gbnZpZGlhLHNub3ItZGF0YS13aWR0aC0zMmJpdDogVXNlIDMyYml0IGRhdGEt\n"
- "YnVzLCBkZWZhdWx0IGlzDQo+IDE2Yml0Lg0KPiArIC0gbnZpZGlhLHNub3ItbXV4LW1vZGU6IEVu\n"
- "YWJsZSBhZGRyZXNzL2RhdGEgTVVYIG1vZGUuDQo+ICsgLSBudmlkaWEsc25vci1yZHktYWN0aXZl\n"
- "LWJlZm9yZS1kYXRhOiBBc3NlcnQgUkRZIHNpZ25hbCBvbmUgY3ljbGUNCj4gYmVmb3JlIGRhdGEu\n"
- "DQo+ICvCoMKgwqBJZiBvbWl0dGVkIGl0IHdpbGwgYmUgYXNzZXJ0ZWQgd2l0aCBkYXRhLg0KPiAr\n"
- "IC0gbnZpZGlhLHNub3ItcmR5LWludjogUkRZIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0g\n"
- "bnZpZGlhLHNub3ItYWR2LWludjogQURWIHNpZ25hbCBpcyBhY3RpdmUgaGlnaA0KPiArIC0gbnZp\n"
- "ZGlhLHNub3Itb2UtaW52OiBXRS9PRSBzaWduYWwgaXMgYWN0aXZlIGhpZ2gNCj4gKyAtIG52aWRp\n"
- "YSxzbm9yLWNzLWludjogQ1Mgc2lnbmFsIGlzIGFjdGl2ZSBoaWdoDQo+ICsNCj4gK8KgwqBOb3Rl\n"
- "IHRoYXQgdGhlcmUgaXMgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgdGltaW5nIHZhbHVl\n"
- "cy4NCj4gK8KgwqBGcm9tIFRlZ3JhIFRSTToNCj4gK8KgwqBQcm9ncmFtbWluZyAwIG1lYW5zIDEg\n"
- "Y2xvY2sgY3ljbGU6IGFjdHVhbCBjeWNsZSA9IHByb2dyYW1tZWQgY3ljbGUNCj4gKyAxDQo+ICsN\n"
- "Cj4gKyAtIG52aWRpYSxzbm9yLW11eGVkLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIE1VWCBhZGRy\n"
- "ZXNzL2RhdGENCj4gYXNzZXJ0ZWQgb24gdGhlDQo+ICvCoMKgwqBidXMuIFZhbGlkIHZhbHVlcyBh\n"
- "cmUgMC0xNSwgZGVmYXVsdCBpcyAxDQo+ICsgLSBudmlkaWEsc25vci1ob2xkLXdpZHRoOiBOdW1i\n"
- "ZXIgb2YgY3ljbGVzIENFIHN0YXlzIGFzc2VydGVkIGFmdGVyDQo+IHRoZQ0KPiArwqDCoMKgZGUt\n"
- "YXNzZXJ0aW9uIG9mIFdSX04gKGluIGNhc2Ugb2YgU0xBVkUvTUFTVEVSIFJlcXVlc3QpIG9yIE9F\n"
- "X04NCj4gK8KgwqDCoChpbiBjYXNlIG9mIE1BU1RFUiBSZXF1ZXN0KS4gVmFsaWQgdmFsdWVzIGFy\n"
- "ZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAtIG52aWRpYSxzbm9yLWFkdi13aWR0aDogTnVtYmVy\n"
- "IG9mIGN5Y2xlcyBkdXJpbmcgd2hpY2ggQURWIHN0YXlzDQo+IGFzc2VydGVkLg0KPiArwqDCoMKg\n"
- "VmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDEuDQo+ICsgLSBudmlkaWEsc25vci1j\n"
- "ZS13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBiZWZvcmUgQ0UgaXMgYXNzZXJ0ZWQuDQo+ICvCoMKg\n"
- "wqBWYWxpZCB2YWx1ZXMgYXJlIDAtMTUsIGRlZmF1bHQgaXMgNA0KPiArIC0gbnZpZGlhLHNub3It\n"
- "d2Utd2lkdGg6IE51bWJlciBvZiBjeWNsZXMgZHVyaW5nIHdoaWNoIFdFIHN0YXlzDQo+IGFzc2Vy\n"
- "dGVkLg0KPiArwqDCoMKgVmFsaWQgdmFsdWVzIGFyZSAwLTE1LCBkZWZhdWx0IGlzIDENCj4gKyAt\n"
- "IG52aWRpYSxzbm9yLW9lLXdpZHRoOiBOdW1iZXIgb2YgY3ljbGVzIGR1cmluZyB3aGljaCBPRSBz\n"
- "dGF5cw0KPiBhc3NlcnRlZC4NCj4gK8KgwqDCoFZhbGlkIHZhbHVlcyBhcmUgMC0yNTUsIGRlZmF1\n"
- "bHQgaXMgMQ0KPiArIC0gbnZpZGlhLHNub3Itd2FpdC13aWR0aDogTnVtYmVyIG9mIGN5Y2xlcyBi\n"
- "ZWZvcmUgUkVBRFkgaXMNCj4gYXNzZXJ0ZWQuDQo+ICvCoMKgwqBWYWxpZCB2YWx1ZXMgYXJlIDAt\n"
- "MjU1LCBkZWZhdWx0IGlzIDMNCj4gKw0KPiArRXhhbXBsZSB3aXRoIHR3byBTSkExMDAwIENBTiBj\n"
- "b250cm9sbGVycyBjb25uZWN0ZWQgdG8gdGhlIEdNSSBidXMuDQo+IFdlIHdyYXAgdGhlDQo+ICtj\n"
- "b250cm9sbGVycyB3aXRoIGEgc2ltcGxlLWJ1cyBub2RlIHNpbmNlIHRoZXkgYXJlIGFsbCBjb25u\n"
- "ZWN0ZWQgdG8NCj4gdGhlIHNhbWUNCj4gK2NoaXAtc2VsZWN0IChDUzQpLCBpbiB0aGlzIGV4YW1w\n"
- "bGUgZXh0ZXJuYWwgYWRkcmVzcyBkZWNvZGluZyBpcw0KPiBwcm92aWRlZDoNCj4gKw0KPiArZ21p\n"
- "QDcwMDkwMDAwIHsNCg0KSXQncyBhY3R1YWxseSA3MDAwOTAwMC4NCg0KPiArCWNvbXBhdGlibGUg\n"
- "PSAibnZpZGlhLHRlZ3JhMjAtZ21pIjsNCj4gKwlyZWcgPSA8MHg3MDAwOTAwMCAweDEwMDA+Ow0K\n"
- "PiArCSNhZGRyZXNzLWNlbGxzID0gPDE+Ow0KPiArCSNzaXplLWNlbGxzID0gPDE+Ow0KPiArCWNs\n"
- "b2NrcyA9IDwmdGVncmFfY2FyIFRFR1JBMjBfQ0xLX05PUj47DQo+ICsJY2xvY2stbmFtZXMgPSAi\n"
- "Z21pIjsNCj4gKwlyZXNldHMgPSA8JnRlZ3JhX2NhciA0Mj47DQo+ICsJcmVzZXQtbmFtZXMgPSAi\n"
- "Z21pIjsNCj4gKwlyYW5nZXMgPSA8NCAweDQ4MDAwMDAwIDB4N2ZmZmZmZj47DQo+ICsNCj4gKwlz\n"
- "dGF0dXMgPSAiZGlzYWJsZWQiOw0KDQpJIGd1ZXNzIGluIGFuIGV4YW1wbGUgb25lIGNvdWxkIGV2\n"
- "ZW4gc2V0IHRoaXMgdG8gb2theS4NCg0KPiArDQo+ICsJYnVzQDQgew0KPiArCQljb21wYXRpYmxl\n"
- "ID0gInNpbXBsZS1idXMiOw0KPiArCQlyZWcgPSA8ND47DQo+ICsJCSNhZGRyZXNzLWNlbGxzID0g\n"
- "PDE+Ow0KPiArCQkjc2l6ZS1jZWxscyA9IDwxPjsNCj4gKwkJcmFuZ2VzID0gPDAgNCAweDQwMTAw\n"
- "PjsNCj4gKw0KPiArCQludmlkaWEsc25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2\n"
- "LWludjsNCj4gKw0KPiArCQljYW5AMCB7DQo+ICsJCQlyZWcgPSA8MCAweDEwMD47DQo+ICsJCQku\n"
- "Li4NCj4gKwkJfTsNCj4gKw0KPiArCQljYW5ANDAwMDAgew0KPiArCQkJcmVnID0gPDB4NDAwMDAg\n"
- "MHgxMDA+Ow0KPiArCQkJLi4uDQo+ICsJCX07DQo+ICsJfTsNCj4gK307DQo+ICsNCj4gK0V4YW1w\n"
- "bGUgd2l0aCBvbmUgU0pBMTAwMCBDQU4gY29udHJvbGxlciBjb25uZWN0ZWQgdG8gdGhlIEdNSSBi\n"
- "dXMNCj4gK29uIENTNDoNCj4gKw0KPiArZ21pQDcwMDkwMDAwIHsNCg0KU2FtZSBoZXJlLg0KDQo+\n"
- "ICsJY29tcGF0aWJsZSA9ICJudmlkaWEsdGVncmEyMC1nbWkiOw0KPiArCXJlZyA9IDwweDcwMDA5\n"
- "MDAwIDB4MTAwMD47DQo+ICsJI2FkZHJlc3MtY2VsbHMgPSA8MT47DQo+ICsJI3NpemUtY2VsbHMg\n"
- "PSA8MT47DQo+ICsJY2xvY2tzID0gPCZ0ZWdyYV9jYXIgVEVHUkEyMF9DTEtfTk9SPjsNCj4gKwlj\n"
- "bG9jay1uYW1lcyA9ICJnbWkiOw0KPiArCXJlc2V0cyA9IDwmdGVncmFfY2FyIDQyPjsNCj4gKwly\n"
- "ZXNldC1uYW1lcyA9ICJnbWkiOw0KPiArCXJhbmdlcyA9IDw0IDB4NDgwMDAwMDAgMHg3ZmZmZmZm\n"
- "PjsNCj4gKw0KPiArCXN0YXR1cyA9ICJkaXNhYmxlZCI7DQoNClNhbWUgaGVyZS4NCg0KPiArDQo+\n"
- "ICsJY2FuQDQgew0KPiArCQlyZWcgPSA8NCAweDEwMD47DQo+ICsJCS4uLg0KPiArCQludmlkaWEs\n"
- "c25vci1tdXgtbW9kZTsNCj4gKwkJbnZpZGlhLHNub3ItYWR2LWludjsNCj4gKwl9Ow0KPiArfTsN\n"
- Cj4gLS0NCj4gMi4xLjQ=
+ "On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote:\n"
+ "> From: Mirza Krak <mirza.krak@gmail.com>\n"
+ "> \n"
+ "> Document the devicetree bindings for the Generic Memory Interface\n"
+ "> (GMI)\n"
+ "> bus driver found on Tegra SOCs.\n"
+ "> \n"
+ "> Signed-off-by: Mirza Krak <mirza.krak@gmail.com>\n"
+ "> ---\n"
+ "> Changes in v2:\n"
+ "> - Updated examples and some information based on comments from Jon\n"
+ "> Hunter.\n"
+ "> \n"
+ "> \302\240.../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132\n"
+ "> +++++++++++++++++++++\n"
+ "> \302\2401 file changed, 132 insertions(+)\n"
+ "> \302\240create mode 100644\n"
+ "> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt\n"
+ "> \n"
+ "> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20-\n"
+ "> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20-\n"
+ "> gmi.txt\n"
+ "> new file mode 100644\n"
+ "> index 0000000..8c1e15f\n"
+ "> --- /dev/null\n"
+ "> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt\n"
+ "> @@ -0,0 +1,132 @@\n"
+ "> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus\n"
+ "> +\n"
+ "> +The Generic Memory Interface bus enables memory transfers between\n"
+ "> internal and\n"
+ "> +external memory. Can be used to attach various high speed devices\n"
+ "> such as\n"
+ "> +synchronous/asynchronous NOR, FPGA, UARTS and more.\n"
+ "> +\n"
+ "> +The actual devices are instantiated from the child nodes of a GMI\n"
+ "> node.\n"
+ "> +\n"
+ "> +Required properties:\n"
+ "> + - compatible : Should contain one of the following:\n"
+ "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240For Tegra20 must contain \"nvidia,tegra20-gmi\".\n"
+ "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240For Tegra30 must contain \"nvidia,tegra30-gmi\".\n"
+ "> + - reg: Should contain GMI controller registers location and length.\n"
+ "> + - clocks: Must contain an entry for each entry in clock-names.\n"
+ "> + - clock-names: Must include the following entries: \"gmi\"\n"
+ "> + - resets : Must contain an entry for each entry in reset-names.\n"
+ "> + - reset-names : Must include the following entries: \"gmi\"\n"
+ "> + - #address-cells: The number of cells used to represent physical\n"
+ "> base\n"
+ "> +\302\240\302\240\302\240addresses in the GMI address space. Should be 1.\n"
+ "> + - #size-cells: The number of cells used to represent the size of an\n"
+ "> address\n"
+ "> +\302\240\302\240\302\240range in the GMI address space. Should be 1.\n"
+ "> + - ranges: Must be set up to reflect the memory layout with three\n"
+ "> integer values\n"
+ "> +\302\240\302\240\302\240for each chip-select line in use (only one entry is supported,\n"
+ "> see below\n"
+ "> +\302\240\302\240\302\240comments):\n"
+ "> +\302\240\302\240\302\240<cs-number> <physical address of mapping> <size>\n"
+ "> +\n"
+ "> +Note that the GMI controller does not have any internal chip-select\n"
+ "> address\n"
+ "> +decoding, because of that chip-selects either need to be managed via\n"
+ "> software\n"
+ "> +or by employing external chip-select decoding logic.\n"
+ "> +\n"
+ "> +If external chip-select logic is used to support multiple devices it\n"
+ "> is assumed\n"
+ "> +that the devices use the same timing and so are probably the same\n"
+ "> type. It also\n"
+ "> +assumes that they can fit in the 256MB address range. In this case\n"
+ "> only one\n"
+ "> +child device is supported which represents the active chip-select\n"
+ "> line, see\n"
+ "> +examples for more insight.\n"
+ "> +\n"
+ "> +Required child cs node properties:\n"
+ "> + - reg: First entry should contain the active chip-select number\n"
+ "> +\n"
+ "> +Optional child cs node properties:\n"
+ "> +\n"
+ "> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is\n"
+ "> 16bit.\n"
+ "> + - nvidia,snor-mux-mode: Enable address/data MUX mode.\n"
+ "> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle\n"
+ "> before data.\n"
+ "> +\302\240\302\240\302\240If omitted it will be asserted with data.\n"
+ "> + - nvidia,snor-rdy-inv: RDY signal is active high\n"
+ "> + - nvidia,snor-adv-inv: ADV signal is active high\n"
+ "> + - nvidia,snor-oe-inv: WE/OE signal is active high\n"
+ "> + - nvidia,snor-cs-inv: CS signal is active high\n"
+ "> +\n"
+ "> +\302\240\302\240Note that there is some special handling for the timing values.\n"
+ "> +\302\240\302\240From Tegra TRM:\n"
+ "> +\302\240\302\240Programming 0 means 1 clock cycle: actual cycle = programmed cycle\n"
+ "> + 1\n"
+ "> +\n"
+ "> + - nvidia,snor-muxed-width: Number of cycles MUX address/data\n"
+ "> asserted on the\n"
+ "> +\302\240\302\240\302\240bus. Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after\n"
+ "> the\n"
+ "> +\302\240\302\240\302\240de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N\n"
+ "> +\302\240\302\240\302\240(in case of MASTER Request). Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-adv-width: Number of cycles during which ADV stays\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-15, default is 1.\n"
+ "> + - nvidia,snor-ce-width: Number of cycles before CE is asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-15, default is 4\n"
+ "> + - nvidia,snor-we-width: Number of cycles during which WE stays\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-15, default is 1\n"
+ "> + - nvidia,snor-oe-width: Number of cycles during which OE stays\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-255, default is 1\n"
+ "> + - nvidia,snor-wait-width: Number of cycles before READY is\n"
+ "> asserted.\n"
+ "> +\302\240\302\240\302\240Valid values are 0-255, default is 3\n"
+ "> +\n"
+ "> +Example with two SJA1000 CAN controllers connected to the GMI bus.\n"
+ "> We wrap the\n"
+ "> +controllers with a simple-bus node since they are all connected to\n"
+ "> the same\n"
+ "> +chip-select (CS4), in this example external address decoding is\n"
+ "> provided:\n"
+ "> +\n"
+ "> +gmi@70090000 {\n"
+ "\n"
+ "It's actually 70009000.\n"
+ "\n"
+ "> +\tcompatible = \"nvidia,tegra20-gmi\";\n"
+ "> +\treg = <0x70009000 0x1000>;\n"
+ "> +\t#address-cells = <1>;\n"
+ "> +\t#size-cells = <1>;\n"
+ "> +\tclocks = <&tegra_car TEGRA20_CLK_NOR>;\n"
+ "> +\tclock-names = \"gmi\";\n"
+ "> +\tresets = <&tegra_car 42>;\n"
+ "> +\treset-names = \"gmi\";\n"
+ "> +\tranges = <4 0x48000000 0x7ffffff>;\n"
+ "> +\n"
+ "> +\tstatus = \"disabled\";\n"
+ "\n"
+ "I guess in an example one could even set this to okay.\n"
+ "\n"
+ "> +\n"
+ "> +\tbus@4 {\n"
+ "> +\t\tcompatible = \"simple-bus\";\n"
+ "> +\t\treg = <4>;\n"
+ "> +\t\t#address-cells = <1>;\n"
+ "> +\t\t#size-cells = <1>;\n"
+ "> +\t\tranges = <0 4 0x40100>;\n"
+ "> +\n"
+ "> +\t\tnvidia,snor-mux-mode;\n"
+ "> +\t\tnvidia,snor-adv-inv;\n"
+ "> +\n"
+ "> +\t\tcan@0 {\n"
+ "> +\t\t\treg = <0 0x100>;\n"
+ "> +\t\t\t...\n"
+ "> +\t\t};\n"
+ "> +\n"
+ "> +\t\tcan@40000 {\n"
+ "> +\t\t\treg = <0x40000 0x100>;\n"
+ "> +\t\t\t...\n"
+ "> +\t\t};\n"
+ "> +\t};\n"
+ "> +};\n"
+ "> +\n"
+ "> +Example with one SJA1000 CAN controller connected to the GMI bus\n"
+ "> +on CS4:\n"
+ "> +\n"
+ "> +gmi@70090000 {\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ "> +\tcompatible = \"nvidia,tegra20-gmi\";\n"
+ "> +\treg = <0x70009000 0x1000>;\n"
+ "> +\t#address-cells = <1>;\n"
+ "> +\t#size-cells = <1>;\n"
+ "> +\tclocks = <&tegra_car TEGRA20_CLK_NOR>;\n"
+ "> +\tclock-names = \"gmi\";\n"
+ "> +\tresets = <&tegra_car 42>;\n"
+ "> +\treset-names = \"gmi\";\n"
+ "> +\tranges = <4 0x48000000 0x7ffffff>;\n"
+ "> +\n"
+ "> +\tstatus = \"disabled\";\n"
+ "\n"
+ "Same here.\n"
+ "\n"
+ "> +\n"
+ "> +\tcan@4 {\n"
+ "> +\t\treg = <4 0x100>;\n"
+ "> +\t\t...\n"
+ "> +\t\tnvidia,snor-mux-mode;\n"
+ "> +\t\tnvidia,snor-adv-inv;\n"
+ "> +\t};\n"
+ "> +};\n"
+ "> --\n"
+ > 2.1.4
 
-e80e60be58c895271755a1e67c11c6c15566a8b9b119a08acad3c0546592f4b1
+942ffe21471fdb3bb15e652211c27ec96a525fc12ecf92e3a929080d075f2db4

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.