lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 17 May 2012 10:24:13 +0800 From: Dong Aisheng <aisheng.dong@...escale.com> To: Guo Shawn-R65073 <r65073@...escale.com> CC: Dong Aisheng-B29396 <B29396@...escale.com>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>, "linus.walleij@...ricsson.com" <linus.walleij@...ricsson.com>, "swarren@...dotorg.org" <swarren@...dotorg.org> Subject: Re: [PATCH RFC 1/1] pinctrl: improve gpio support for dt On Thu, May 17, 2012 at 10:16:15AM +0800, Guo Shawn-R65073 wrote: > On Tue, May 15, 2012 at 10:07:19PM +0800, Dong Aisheng wrote: > > From: Dong Aisheng <dong.aisheng@...aro.org> > > > > For dt, the gpio base may be dynamically allocated, thus the original > > implementation of gpio support based on static gpio number and pin id > > map may not be easy to use for dt. > > > > One solution is a) use alias id for gpio node and refer to it in gpio > > range, then we can get the fixed the gpio devices for this range and > > b) get gpio chip from node which is specified in gpio range structure, > > then get the dynamically allocated gpio chip base and c) using the chip > > gpio base and offset to map to a physical pin id for dt. > > > > To implement that, we need add two members in pinctrl_gpio_range structure, > > 'np' the gpio node for this range and 'off' the offset in this gpio range > > of the gpio chip. > > > > For devicetree, user can use this two member instead of range->base > > to create the map, the core will dynamically set the correct range->base > > based on the gpio base plus gpio offset. > > > > For example: > > static struct pinctrl_gpio_range imx28_gpio_ranges[] = { > > { .name = "gpio", .id = 0, .pin_base = 0, .npins = 8, .np = np_gpio0 .off = 0,}, > > { .name = "gpio", .id = 0, .pin_base = 16, .npins = 13, .np = np_gpio0 .off = 16,}, > > { .name = "gpio", .id = 1, .pin_base = 32, .npins = 32, .np = np_gpio1 .off = 16}, > > How do you have .np statically assigned? > The drivers are responsible for set .np, usually dynamically get it from whether the driver wants. Regards Dong Aisheng -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists