From mboxrd@z Thu Jan 1 00:00:00 1970 From: ezequiel.garcia@free-electrons.com (Ezequiel Garcia) Date: Sat, 8 Jun 2013 14:29:21 -0300 Subject: [PATCH 03/14] bus: mvebu-mbus: Introduce device tree binding In-Reply-To: <20130607194430.GA7854@obsidianresearch.com> References: <1370623671-7748-1-git-send-email-ezequiel.garcia@free-electrons.com> <1370623671-7748-4-git-send-email-ezequiel.garcia@free-electrons.com> <201306072110.35856.arnd@arndb.de> <20130607194430.GA7854@obsidianresearch.com> Message-ID: <20130608172920.GA2354@localhost> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jun 07, 2013 at 01:44:30PM -0600, Jason Gunthorpe wrote: > On Fri, Jun 07, 2013 at 09:10:35PM +0200, Arnd Bergmann wrote: > > On Friday 07 June 2013, Ezequiel Garcia wrote: > > > + np = of_find_matching_node(NULL, of_mvebu_mbus_ids); > > > + if (!np) { > > > + pr_err("could not find a matching SoC family\n"); > > > + return -ENODEV; > > > + } > > > + > > > + of_id = of_match_node(of_mvebu_mbus_ids, np); > > > + mbus_state.soc = of_id->data; > > > + > > > + if (of_address_to_resource(np, 0, &mbuswins_res)) { > > > + pr_err("cannot get MBUS register address\n"); > > > + return -EINVAL; > > > + } > > > + > > > + if (of_address_to_resource(np, 1, &sdramwins_res)) { > > > + pr_err("cannot get SDRAM register address\n"); > > > + return -EINVAL; > > > + } > > > > Just an idea to make this more regular: Since the internal-regs can no longer > > be regarded as a fixed location, we might want to use the same "ranges" property > > mechanism for resolving the internal regs as we use for everything else. > > > > This would imply that the device node this driver binds to would actually > > end up being a child of the bus itself, which then goes on to modify the > > ranges property of its parent node. Does that make sense? > > We have a minimum requirement that the bootloader setup internal regs, > so the minimum required DT bindings is going to be this: > > mbus { > compatible = ... > ranges = ; > reg = <0xf1000xxx ...>; // MBUS regs block > #address/size-cells... > > internal-regs { > ranges = <0 INTERNAL_REGS_MAP_ID 0x100000>; > } > } > ... and the above is the way its done in my proposal, with INTERNAL_REGS_MAP_ID = 0x0. > ie the ranges should never be empty. > > Discovery of the address of the mbus control registers is via the reg > property on its own node (which is untranslated), and all other > internal regs blocks will automatically translate as they are supposed > to (Thomas's work to make internal regs 0xd/0xf1 relies on this, AFAIK) > > INTERNAL_REGS_MAP_ID is an invalid target ID value, defined to mean > the internal registers target. 0xFFFFFFFF is a better choice for this > than 0, because 0xFFFFFFFF is never going to be a valid target id, it > is too large. > I agree, using 0x0 was not a good choice. I'll change that. Thanks both for the feedback! -- Ezequiel Garc?a, Free Electrons Embedded Linux, Kernel and Android Engineering http://free-electrons.com From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: Re: [PATCH 03/14] bus: mvebu-mbus: Introduce device tree binding Date: Sat, 8 Jun 2013 14:29:21 -0300 Message-ID: <20130608172920.GA2354@localhost> References: <1370623671-7748-1-git-send-email-ezequiel.garcia@free-electrons.com> <1370623671-7748-4-git-send-email-ezequiel.garcia@free-electrons.com> <201306072110.35856.arnd@arndb.de> <20130607194430.GA7854@obsidianresearch.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20130607194430.GA7854-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: "devicetree-discuss" To: Jason Gunthorpe Cc: Lior Amsalem , Jason Cooper , Andrew Lunn , devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, Maen Suleiman , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Sebastian Hesselbarth List-Id: devicetree@vger.kernel.org T24gRnJpLCBKdW4gMDcsIDIwMTMgYXQgMDE6NDQ6MzBQTSAtMDYwMCwgSmFzb24gR3VudGhvcnBl IHdyb3RlOgo+IE9uIEZyaSwgSnVuIDA3LCAyMDEzIGF0IDA5OjEwOjM1UE0gKzAyMDAsIEFybmQg QmVyZ21hbm4gd3JvdGU6Cj4gPiBPbiBGcmlkYXkgMDcgSnVuZSAyMDEzLCBFemVxdWllbCBHYXJj aWEgd3JvdGU6Cj4gPiA+ICsgICAgICAgbnAgPSBvZl9maW5kX21hdGNoaW5nX25vZGUoTlVMTCwg b2ZfbXZlYnVfbWJ1c19pZHMpOwo+ID4gPiArICAgICAgIGlmICghbnApIHsKPiA+ID4gKyAgICAg ICAgICAgICAgIHByX2VycigiY291bGQgbm90IGZpbmQgYSBtYXRjaGluZyBTb0MgZmFtaWx5XG4i KTsKPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+ID4gPiArICAgICAgIH0K PiA+ID4gKwo+ID4gPiArICAgICAgIG9mX2lkID0gb2ZfbWF0Y2hfbm9kZShvZl9tdmVidV9tYnVz X2lkcywgbnApOwo+ID4gPiArICAgICAgIG1idXNfc3RhdGUuc29jID0gb2ZfaWQtPmRhdGE7Cj4g PiA+ICsKPiA+ID4gKyAgICAgICBpZiAob2ZfYWRkcmVzc190b19yZXNvdXJjZShucCwgMCwgJm1i dXN3aW5zX3JlcykpIHsKPiA+ID4gKyAgICAgICAgICAgICAgIHByX2VycigiY2Fubm90IGdldCBN QlVTIHJlZ2lzdGVyIGFkZHJlc3NcbiIpOwo+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7Cj4gPiA+ICsgICAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgICAgaWYgKG9mX2FkZHJl c3NfdG9fcmVzb3VyY2UobnAsIDEsICZzZHJhbXdpbnNfcmVzKSkgewo+ID4gPiArICAgICAgICAg ICAgICAgcHJfZXJyKCJjYW5ub3QgZ2V0IFNEUkFNIHJlZ2lzdGVyIGFkZHJlc3NcbiIpOwo+ID4g PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICsgICAgICAgfQo+ID4gCj4g PiBKdXN0IGFuIGlkZWEgdG8gbWFrZSB0aGlzIG1vcmUgcmVndWxhcjogU2luY2UgdGhlIGludGVy bmFsLXJlZ3MgY2FuIG5vIGxvbmdlcgo+ID4gYmUgcmVnYXJkZWQgYXMgYSBmaXhlZCBsb2NhdGlv biwgd2UgbWlnaHQgd2FudCB0byB1c2UgdGhlIHNhbWUgInJhbmdlcyIgcHJvcGVydHkKPiA+IG1l Y2hhbmlzbSBmb3IgcmVzb2x2aW5nIHRoZSBpbnRlcm5hbCByZWdzIGFzIHdlIHVzZSBmb3IgZXZl cnl0aGluZyBlbHNlLgo+ID4gCj4gPiBUaGlzIHdvdWxkIGltcGx5IHRoYXQgdGhlIGRldmljZSBu b2RlIHRoaXMgZHJpdmVyIGJpbmRzIHRvIHdvdWxkIGFjdHVhbGx5Cj4gPiBlbmQgdXAgYmVpbmcg YSBjaGlsZCBvZiB0aGUgYnVzIGl0c2VsZiwgd2hpY2ggdGhlbiBnb2VzIG9uIHRvIG1vZGlmeSB0 aGUKPiA+IHJhbmdlcyBwcm9wZXJ0eSBvZiBpdHMgcGFyZW50IG5vZGUuIERvZXMgdGhhdCBtYWtl IHNlbnNlPwo+IAo+IFdlIGhhdmUgYSBtaW5pbXVtIHJlcXVpcmVtZW50IHRoYXQgdGhlIGJvb3Rs b2FkZXIgc2V0dXAgaW50ZXJuYWwgcmVncywKPiBzbyB0aGUgbWluaW11bSByZXF1aXJlZCBEVCBi aW5kaW5ncyBpcyBnb2luZyB0byBiZSB0aGlzOgo+IAo+IG1idXMgewo+ICAgY29tcGF0aWJsZSA9 IC4uLgo+ICAgcmFuZ2VzID0gPElOVEVSTkFMX1JFR1NfTUFQX0lEIDB4ZjEwMDAwMDAgMHgxMDAw MDA+Owo+ICAgcmVnID0gPDB4ZjEwMDB4eHggLi4uPjsgLy8gTUJVUyByZWdzIGJsb2NrCj4gICAj YWRkcmVzcy9zaXplLWNlbGxzLi4uCj4gCj4gICBpbnRlcm5hbC1yZWdzICB7Cj4gICAgICAgcmFu Z2VzID0gPDAgSU5URVJOQUxfUkVHU19NQVBfSUQgMHgxMDAwMDA+Owo+ICAgfQo+IH0KPiAKCi4u LiBhbmQgdGhlIGFib3ZlIGlzIHRoZSB3YXkgaXRzIGRvbmUgaW4gbXkgcHJvcG9zYWwsCndpdGgg SU5URVJOQUxfUkVHU19NQVBfSUQgPSAweDAuCgo+IGllIHRoZSByYW5nZXMgc2hvdWxkIG5ldmVy IGJlIGVtcHR5Lgo+IAo+IERpc2NvdmVyeSBvZiB0aGUgYWRkcmVzcyBvZiB0aGUgbWJ1cyBjb250 cm9sIHJlZ2lzdGVycyBpcyB2aWEgdGhlIHJlZwo+IHByb3BlcnR5IG9uIGl0cyBvd24gbm9kZSAo d2hpY2ggaXMgdW50cmFuc2xhdGVkKSwgYW5kIGFsbCBvdGhlcgo+IGludGVybmFsIHJlZ3MgYmxv Y2tzIHdpbGwgYXV0b21hdGljYWxseSB0cmFuc2xhdGUgYXMgdGhleSBhcmUgc3VwcG9zZWQKPiB0 byAoVGhvbWFzJ3Mgd29yayB0byBtYWtlIGludGVybmFsIHJlZ3MgMHhkLzB4ZjEgcmVsaWVzIG9u IHRoaXMsIEFGQUlLKQo+IAo+IElOVEVSTkFMX1JFR1NfTUFQX0lEIGlzIGFuIGludmFsaWQgdGFy Z2V0IElEIHZhbHVlLCBkZWZpbmVkIHRvIG1lYW4KPiB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJzIHRh cmdldC4gMHhGRkZGRkZGRiBpcyBhIGJldHRlciBjaG9pY2UgZm9yIHRoaXMKPiB0aGFuIDAsIGJl Y2F1c2UgMHhGRkZGRkZGRiBpcyBuZXZlciBnb2luZyB0byBiZSBhIHZhbGlkIHRhcmdldCBpZCwg aXQKPiBpcyB0b28gbGFyZ2UuCj4gCgpJIGFncmVlLCB1c2luZyAweDAgd2FzIG5vdCBhIGdvb2Qg Y2hvaWNlLiBJJ2xsIGNoYW5nZSB0aGF0LgoKVGhhbmtzIGJvdGggZm9yIHRoZSBmZWVkYmFjayEK LS0gCkV6ZXF1aWVsIEdhcmPDrWEsIEZyZWUgRWxlY3Ryb25zCkVtYmVkZGVkIExpbnV4LCBLZXJu ZWwgYW5kIEFuZHJvaWQgRW5naW5lZXJpbmcKaHR0cDovL2ZyZWUtZWxlY3Ryb25zLmNvbQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkZXZpY2V0cmVlLWRp c2N1c3MgbWFpbGluZyBsaXN0CmRldmljZXRyZWUtZGlzY3Vzc0BsaXN0cy5vemxhYnMub3JnCmh0 dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9kZXZpY2V0cmVlLWRpc2N1c3MK