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.