* [PATCH 1/3] ARM OMAP: gpiolib fix chip.base @ 2012-10-09 9:53 Teresa Gámez 2012-10-09 9:53 ` [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code Teresa Gámez ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Teresa Gámez @ 2012-10-09 9:53 UTC (permalink / raw) To: barebox; +Cc: vicencb Signed-off-by: Teresa Gámez <t.gamez@phytec.de> --- @ Vicente: Please check if the patches fix your problem arch/arm/mach-omap/gpio.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-omap/gpio.c b/arch/arm/mach-omap/gpio.c index 376e9a7..49ffbda 100644 --- a/arch/arm/mach-omap/gpio.c +++ b/arch/arm/mach-omap/gpio.c @@ -133,7 +133,7 @@ static int omap_gpio_probe(struct device_d *dev) omapgpio = xzalloc(sizeof(*omapgpio)); omapgpio->base = dev_request_mem_region(dev, 0); omapgpio->chip.ops = &omap_gpio_ops; - omapgpio->chip.base = -1; + omapgpio->chip.base = dev->id * 32; omapgpio->chip.ngpio = 32; omapgpio->chip.dev = dev; gpiochip_add(&omapgpio->chip); -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code 2012-10-09 9:53 [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Teresa Gámez @ 2012-10-09 9:53 ` Teresa Gámez 2012-10-09 22:50 ` vj 2012-10-09 9:53 ` [PATCH 3/3] ARM OMAP: change region size for gpio banks Teresa Gámez 2012-10-10 7:32 ` [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Sascha Hauer 2 siblings, 1 reply; 5+ messages in thread From: Teresa Gámez @ 2012-10-09 9:53 UTC (permalink / raw) To: barebox; +Cc: vicencb As the gpio functions are not available at this point, set the gpio manually. Signed-off-by: Teresa Gámez <t.gamez@phytec.de> --- arch/arm/mach-omap/omap4_generic.c | 29 +++++++++++++++++++++++++++-- 1 files changed, 27 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap/omap4_generic.c b/arch/arm/mach-omap/omap4_generic.c index a159dfc..81b39f9 100644 --- a/arch/arm/mach-omap/omap4_generic.c +++ b/arch/arm/mach-omap/omap4_generic.c @@ -484,11 +484,27 @@ enum omap_boot_src omap4_bootsrc(void) return OMAP_BOOTSRC_UNKNOWN; } +#define GPIO_MASK 0x1f + +static void __iomem *omap4_get_gpio_base(unsigned gpio) +{ + void __iomem *base; + + if (gpio < 32) + base = (void *)0x4a310000; + else + base = (void *)(0x48053000 + ((gpio & ~GPIO_MASK) << 8)); + + return base; +} + #define I2C_SLAVE 0x12 noinline int omap4_scale_vcores(unsigned vsel0_pin) { + void __iomem *base; unsigned int rev = omap4_revision(); + u32 val = 0; /* For VC bypass only VCOREx_CGF_FORCE is necessary and * VCOREx_CFG_VOLTAGE changes can be discarded @@ -510,8 +526,17 @@ noinline int omap4_scale_vcores(unsigned vsel0_pin) * VSEL1 is grounded on board. So the following selects * VSEL1 = 0 and VSEL0 = 1 */ - gpio_direction_output(vsel0_pin, 0); - gpio_set_value(vsel0_pin, 1); + base = omap4_get_gpio_base(vsel0_pin); + + val = 1 << (vsel0_pin & GPIO_MASK); + writel(val, base + 0x190); + + val = readl(base + 0x134); + val &= (1 << (vsel0_pin & GPIO_MASK)); + writel(val, base + 0x134); + + val = 1 << (vsel0_pin & GPIO_MASK); + writel(val, base + 0x194); } /* set VCORE1 force VSEL */ -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code 2012-10-09 9:53 ` [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code Teresa Gámez @ 2012-10-09 22:50 ` vj 0 siblings, 0 replies; 5+ messages in thread From: vj @ 2012-10-09 22:50 UTC (permalink / raw) To: Teresa Gámez; +Cc: barebox On Tue, Oct 9, 2012 at 11:53 AM, Teresa Gámez <t.gamez@phytec.de> wrote: > As the gpio functions are not available at this point, set the gpio manually. > > Signed-off-by: Teresa Gámez <t.gamez@phytec.de> > --- > arch/arm/mach-omap/omap4_generic.c | 29 +++++++++++++++++++++++++++-- > 1 files changed, 27 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-omap/omap4_generic.c b/arch/arm/mach-omap/omap4_generic.c > index a159dfc..81b39f9 100644 > --- a/arch/arm/mach-omap/omap4_generic.c > +++ b/arch/arm/mach-omap/omap4_generic.c > @@ -484,11 +484,27 @@ enum omap_boot_src omap4_bootsrc(void) > return OMAP_BOOTSRC_UNKNOWN; > } > > +#define GPIO_MASK 0x1f > + > +static void __iomem *omap4_get_gpio_base(unsigned gpio) > +{ > + void __iomem *base; > + > + if (gpio < 32) > + base = (void *)0x4a310000; > + else > + base = (void *)(0x48053000 + ((gpio & ~GPIO_MASK) << 8)); > + > + return base; > +} > + > #define I2C_SLAVE 0x12 > > noinline int omap4_scale_vcores(unsigned vsel0_pin) > { > + void __iomem *base; > unsigned int rev = omap4_revision(); > + u32 val = 0; > > /* For VC bypass only VCOREx_CGF_FORCE is necessary and > * VCOREx_CFG_VOLTAGE changes can be discarded > @@ -510,8 +526,17 @@ noinline int omap4_scale_vcores(unsigned vsel0_pin) > * VSEL1 is grounded on board. So the following selects > * VSEL1 = 0 and VSEL0 = 1 > */ > - gpio_direction_output(vsel0_pin, 0); > - gpio_set_value(vsel0_pin, 1); > + base = omap4_get_gpio_base(vsel0_pin); > + > + val = 1 << (vsel0_pin & GPIO_MASK); > + writel(val, base + 0x190); > + > + val = readl(base + 0x134); > + val &= (1 << (vsel0_pin & GPIO_MASK)); > + writel(val, base + 0x134); > + > + val = 1 << (vsel0_pin & GPIO_MASK); > + writel(val, base + 0x194); > } > > /* set VCORE1 force VSEL */ > -- > 1.7.0.4 > Yes Teresa, this also works in my case. Thanks, Vicente. _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/3] ARM OMAP: change region size for gpio banks 2012-10-09 9:53 [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Teresa Gámez 2012-10-09 9:53 ` [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code Teresa Gámez @ 2012-10-09 9:53 ` Teresa Gámez 2012-10-10 7:32 ` [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Sascha Hauer 2 siblings, 0 replies; 5+ messages in thread From: Teresa Gámez @ 2012-10-09 9:53 UTC (permalink / raw) To: barebox; +Cc: vicencb - increased the region size for OMAP3, as it was not correct - decrease region size for OMAP4 to prevent overlapping. Signed-off-by: Teresa Gámez <t.gamez@phytec.de> --- arch/arm/mach-omap/omap3_generic.c | 12 ++++++------ arch/arm/mach-omap/omap4_generic.c | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/arm/mach-omap/omap3_generic.c b/arch/arm/mach-omap/omap3_generic.c index 5028e9a..10eeacd 100644 --- a/arch/arm/mach-omap/omap3_generic.c +++ b/arch/arm/mach-omap/omap3_generic.c @@ -515,17 +515,17 @@ const struct gpmc_config omap3_nand_cfg = { static int omap3_gpio_init(void) { add_generic_device("omap-gpio", 0, NULL, 0x48310000, - 0x100, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 1, NULL, 0x49050000, - 0x100, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 2, NULL, 0x49052000, - 0x100, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 3, NULL, 0x49054000, - 0x100, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 4, NULL, 0x49056000, - 0x100, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 5, NULL, 0x49058000, - 0x100, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); return 0; } diff --git a/arch/arm/mach-omap/omap4_generic.c b/arch/arm/mach-omap/omap4_generic.c index 81b39f9..76134f2 100644 --- a/arch/arm/mach-omap/omap4_generic.c +++ b/arch/arm/mach-omap/omap4_generic.c @@ -601,17 +601,17 @@ const struct gpmc_config omap4_nand_cfg = { static int omap4_gpio_init(void) { add_generic_device("omap-gpio", 0, NULL, 0x4a310100, - 0x1000, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 1, NULL, 0x48055100, - 0x1000, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 2, NULL, 0x48057100, - 0x1000, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 3, NULL, 0x48059100, - 0x1000, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 4, NULL, 0x4805b100, - 0x1000, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); add_generic_device("omap-gpio", 5, NULL, 0x4805d100, - 0x1000, IORESOURCE_MEM, NULL); + 0xf00, IORESOURCE_MEM, NULL); return 0; } -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] ARM OMAP: gpiolib fix chip.base 2012-10-09 9:53 [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Teresa Gámez 2012-10-09 9:53 ` [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code Teresa Gámez 2012-10-09 9:53 ` [PATCH 3/3] ARM OMAP: change region size for gpio banks Teresa Gámez @ 2012-10-10 7:32 ` Sascha Hauer 2 siblings, 0 replies; 5+ messages in thread From: Sascha Hauer @ 2012-10-10 7:32 UTC (permalink / raw) To: Teresa Gámez; +Cc: barebox, vicencb On Tue, Oct 09, 2012 at 11:53:24AM +0200, Teresa Gámez wrote: > > Signed-off-by: Teresa Gámez <t.gamez@phytec.de> > --- > @ Vicente: Please check if the patches fix your problem > > arch/arm/mach-omap/gpio.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) Applied this series to master. Sascha > > diff --git a/arch/arm/mach-omap/gpio.c b/arch/arm/mach-omap/gpio.c > index 376e9a7..49ffbda 100644 > --- a/arch/arm/mach-omap/gpio.c > +++ b/arch/arm/mach-omap/gpio.c > @@ -133,7 +133,7 @@ static int omap_gpio_probe(struct device_d *dev) > omapgpio = xzalloc(sizeof(*omapgpio)); > omapgpio->base = dev_request_mem_region(dev, 0); > omapgpio->chip.ops = &omap_gpio_ops; > - omapgpio->chip.base = -1; > + omapgpio->chip.base = dev->id * 32; > omapgpio->chip.ngpio = 32; > omapgpio->chip.dev = dev; > gpiochip_add(&omapgpio->chip); > -- > 1.7.0.4 > > > _______________________________________________ > barebox mailing list > barebox@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/barebox -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-10-10 7:32 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-10-09 9:53 [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Teresa Gámez 2012-10-09 9:53 ` [PATCH 2/3] ARM OMAP: Remove usage of gpio lib calls in lowlevel code Teresa Gámez 2012-10-09 22:50 ` vj 2012-10-09 9:53 ` [PATCH 3/3] ARM OMAP: change region size for gpio banks Teresa Gámez 2012-10-10 7:32 ` [PATCH 1/3] ARM OMAP: gpiolib fix chip.base Sascha Hauer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox