Message ID | 201207101534.13166.arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
? 2012?07?10? 23:34, Arnd Bergmann ??: > On Tuesday 10 July 2012, Tony Lindgren wrote: >> The following changes since commit 6887a4131da3adaab011613776d865f4bcfb5678: >> >> Linux 3.5-rc5 (2012-06-30 16:08:57 -0700) >> >> are available in the git repository at: >> >> git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-devel-board-for-v3.6 >> >> for you to fetch changes up to b103a2e22a238085f5c50d96345e1a09bb1efd50: >> >> ARM: OMAP3: Fix omap3evm randconfig error introduced by VBUS support (2012-07-09 23:22:24 -0700) >> >> ---------------------------------------------------------------- >> Board and platform data related changes for omaps >> >> ---------------------------------------------------------------- >> Andy Gross (1): >> omap2+: add drm device >> >> Dmitry Lifshitz (2): >> ARM: OMAP3: cm-t35: add mt9t001 camera sensor support >> ARM: OMAP3: cm-t35: add tvp5150 decoder support >> >> Peter Ujfalusi (2): >> ARM: OMAP: board-4430sdp: MUX configuration for sys_nirq2 >> ARM: OMAP: board-omap4panda: MUX configuration for sys_nirq2 >> >> Tony Lindgren (1): >> ARM: OMAP3: Fix omap3evm randconfig error introduced by VBUS support >> >> Zumeng Chen (4): >> ARM: OMAP3EVM: Add NAND flash definition >> ARM: OMAP3EVM: Adding USB internal LDOs board file >> ARM: omap3evm: enable VBUS switch for EHCI tranceiver >> ARM: OMAP3530evm: set pendown_state and debounce time for ads7846 >> diff --cc arch/arm/mach-omap2/common-board-devices.c > I got a conflict in arch/arm/mach-omap2/common-board-devices.c between > 16aced80f6739 "ARM: OMAP3530evm: set pendown_state and debounce time for > ads7846" and 97ee9f01d6f26 "ARM: OMAP: fix the ads7846 init code", > see my resolution below. > > Please check if what I have in the for-next branch makese sense to you > all. No problem, many thanks Arnd for your information. I'll check it, test it, and send you feedback. Regards, Zumeng > > Arnd > > * Unmerged path arch/arm/mach-omap2/common-board-devices.c > diff --git a/arch/arm/mach-omap2/common-board-devices.c b/arch/arm/mach-omap2/common-board-devices.c > index 1706ebc..1473474 100644 > --- a/arch/arm/mach-omap2/common-board-devices.c > +++ b/arch/arm/mach-omap2/common-board-devices.c > @@ -35,6 +35,16 @@ static struct omap2_mcspi_device_config ads7846_mcspi_config = { > .turbo_mode = 0, > }; > > +/* > + * ADS7846 driver maybe request a gpio according to the value > + * of pdata->get_pendown_state, but we have done this. So set > + * get_pendown_state to avoid twice gpio requesting. > + */ > +static int omap3_get_pendown_state(void) > +{ > + return !gpio_get_value(OMAP3_EVM_TS_GPIO); > +} > + > static struct ads7846_platform_data ads7846_config = { > .x_max = 0x0fff, > .y_max = 0x0fff, > @@ -45,6 +55,7 @@ static struct ads7846_platform_data ads7846_config = { > .debounce_rep = 1, > .gpio_pendown = -EINVAL, > .keep_vref_on = 1, > + .get_pendown_state =&omap3_get_pendown_state, > }; > > static struct spi_board_info ads7846_spi_board_info __initdata = { > @@ -63,28 +74,30 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce, > struct spi_board_info *spi_bi =&ads7846_spi_board_info; > int err; > > - if (board_pdata&& board_pdata->get_pendown_state) { > - err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown"); > - if (err) { > - pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err); > - return; > - } > - gpio_export(gpio_pendown, 0); > - > - if (gpio_debounce) > - gpio_set_debounce(gpio_pendown, gpio_debounce); > + err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown"); > + if (err) { > + pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err); > + return; > } > > + if (gpio_debounce) > + gpio_set_debounce(gpio_pendown, gpio_debounce); > + > spi_bi->bus_num = bus_num; > spi_bi->irq = gpio_to_irq(gpio_pendown); > > if (board_pdata) { > board_pdata->gpio_pendown = gpio_pendown; > spi_bi->platform_data = board_pdata; > + if (board_pdata->get_pendown_state) > + gpio_export(gpio_pendown, 0); > } else { > ads7846_config.gpio_pendown = gpio_pendown; > } > > + if (!board_pdata || (board_pdata&& !board_pdata->get_pendown_state)) > + gpio_free(gpio_pendown); > + > spi_register_board_info(&ads7846_spi_board_info, 1); > } > #else -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
It seems work well now, thanks Tony and Arnd for your extra work on these patches. Regards, Zumeng ? 2012?07?11? 08:52, Zumeng Chen ??: > ? 2012?07?10? 23:34, Arnd Bergmann ??: >> On Tuesday 10 July 2012, Tony Lindgren wrote: >>> The following changes since commit >>> 6887a4131da3adaab011613776d865f4bcfb5678: >>> >>> Linux 3.5-rc5 (2012-06-30 16:08:57 -0700) >>> >>> are available in the git repository at: >>> >>> git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap >>> tags/omap-devel-board-for-v3.6 >>> >>> for you to fetch changes up to >>> b103a2e22a238085f5c50d96345e1a09bb1efd50: >>> >>> ARM: OMAP3: Fix omap3evm randconfig error introduced by VBUS >>> support (2012-07-09 23:22:24 -0700) >>> >>> ---------------------------------------------------------------- >>> Board and platform data related changes for omaps >>> >>> ---------------------------------------------------------------- >>> Andy Gross (1): >>> omap2+: add drm device >>> >>> Dmitry Lifshitz (2): >>> ARM: OMAP3: cm-t35: add mt9t001 camera sensor support >>> ARM: OMAP3: cm-t35: add tvp5150 decoder support >>> >>> Peter Ujfalusi (2): >>> ARM: OMAP: board-4430sdp: MUX configuration for sys_nirq2 >>> ARM: OMAP: board-omap4panda: MUX configuration for sys_nirq2 >>> >>> Tony Lindgren (1): >>> ARM: OMAP3: Fix omap3evm randconfig error introduced by VBUS >>> support >>> >>> Zumeng Chen (4): >>> ARM: OMAP3EVM: Add NAND flash definition >>> ARM: OMAP3EVM: Adding USB internal LDOs board file >>> ARM: omap3evm: enable VBUS switch for EHCI tranceiver >>> ARM: OMAP3530evm: set pendown_state and debounce time for >>> ads7846 >>> diff --cc arch/arm/mach-omap2/common-board-devices.c >> I got a conflict in arch/arm/mach-omap2/common-board-devices.c between >> 16aced80f6739 "ARM: OMAP3530evm: set pendown_state and debounce time for >> ads7846" and 97ee9f01d6f26 "ARM: OMAP: fix the ads7846 init code", >> see my resolution below. >> >> Please check if what I have in the for-next branch makese sense to you >> all. > No problem, many thanks Arnd for your information. > I'll check it, test it, and send you feedback. > > Regards, > Zumeng >> >> Arnd >> >> * Unmerged path arch/arm/mach-omap2/common-board-devices.c >> diff --git a/arch/arm/mach-omap2/common-board-devices.c >> b/arch/arm/mach-omap2/common-board-devices.c >> index 1706ebc..1473474 100644 >> --- a/arch/arm/mach-omap2/common-board-devices.c >> +++ b/arch/arm/mach-omap2/common-board-devices.c >> @@ -35,6 +35,16 @@ static struct omap2_mcspi_device_config >> ads7846_mcspi_config = { >> .turbo_mode = 0, >> }; >> >> +/* >> + * ADS7846 driver maybe request a gpio according to the value >> + * of pdata->get_pendown_state, but we have done this. So set >> + * get_pendown_state to avoid twice gpio requesting. >> + */ >> +static int omap3_get_pendown_state(void) >> +{ >> + return !gpio_get_value(OMAP3_EVM_TS_GPIO); >> +} >> + >> static struct ads7846_platform_data ads7846_config = { >> .x_max = 0x0fff, >> .y_max = 0x0fff, >> @@ -45,6 +55,7 @@ static struct ads7846_platform_data ads7846_config = { >> .debounce_rep = 1, >> .gpio_pendown = -EINVAL, >> .keep_vref_on = 1, >> + .get_pendown_state =&omap3_get_pendown_state, >> }; >> >> static struct spi_board_info ads7846_spi_board_info __initdata = { >> @@ -63,28 +74,30 @@ void __init omap_ads7846_init(int bus_num, int >> gpio_pendown, int gpio_debounce, >> struct spi_board_info *spi_bi =&ads7846_spi_board_info; >> int err; >> >> - if (board_pdata&& board_pdata->get_pendown_state) { >> - err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown"); >> - if (err) { >> - pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err); >> - return; >> - } >> - gpio_export(gpio_pendown, 0); >> - >> - if (gpio_debounce) >> - gpio_set_debounce(gpio_pendown, gpio_debounce); >> + err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown"); >> + if (err) { >> + pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err); >> + return; >> } >> >> + if (gpio_debounce) >> + gpio_set_debounce(gpio_pendown, gpio_debounce); >> + >> spi_bi->bus_num = bus_num; >> spi_bi->irq = gpio_to_irq(gpio_pendown); >> >> if (board_pdata) { >> board_pdata->gpio_pendown = gpio_pendown; >> spi_bi->platform_data = board_pdata; >> + if (board_pdata->get_pendown_state) >> + gpio_export(gpio_pendown, 0); >> } else { >> ads7846_config.gpio_pendown = gpio_pendown; >> } >> >> + if (!board_pdata || (board_pdata&& >> !board_pdata->get_pendown_state)) >> + gpio_free(gpio_pendown); >> + >> spi_register_board_info(&ads7846_spi_board_info, 1); >> } >> #else > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
* Zumeng Chen <zumeng.chen@windriver.com> [120710 17:57]: > ? 2012?07?10? 23:34, Arnd Bergmann ??: > >I got a conflict in arch/arm/mach-omap2/common-board-devices.c between > >16aced80f6739 "ARM: OMAP3530evm: set pendown_state and debounce time for > >ads7846" and 97ee9f01d6f26 "ARM: OMAP: fix the ads7846 init code", > >see my resolution below. > > > >Please check if what I have in the for-next branch makese sense to you > >all. > > No problem, many thanks Arnd for your information. > I'll check it, test it, and send you feedback. Thanks, looks good. Also I've checked that for-next builds fine with my testconfigs. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-omap2/common-board-devices.c b/arch/arm/mach-omap2/common-board-devices.c index 1706ebc..1473474 100644 --- a/arch/arm/mach-omap2/common-board-devices.c +++ b/arch/arm/mach-omap2/common-board-devices.c @@ -35,6 +35,16 @@ static struct omap2_mcspi_device_config ads7846_mcspi_config = { .turbo_mode = 0, }; +/* + * ADS7846 driver maybe request a gpio according to the value + * of pdata->get_pendown_state, but we have done this. So set + * get_pendown_state to avoid twice gpio requesting. + */ +static int omap3_get_pendown_state(void) +{ + return !gpio_get_value(OMAP3_EVM_TS_GPIO); +} + static struct ads7846_platform_data ads7846_config = { .x_max = 0x0fff, .y_max = 0x0fff, @@ -45,6 +55,7 @@ static struct ads7846_platform_data ads7846_config = { .debounce_rep = 1, .gpio_pendown = -EINVAL, .keep_vref_on = 1, + .get_pendown_state = &omap3_get_pendown_state, }; static struct spi_board_info ads7846_spi_board_info __initdata = { @@ -63,28 +74,30 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce, struct spi_board_info *spi_bi = &ads7846_spi_board_info; int err; - if (board_pdata && board_pdata->get_pendown_state) { - err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown"); - if (err) { - pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err); - return; - } - gpio_export(gpio_pendown, 0); - - if (gpio_debounce) - gpio_set_debounce(gpio_pendown, gpio_debounce); + err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown"); + if (err) { + pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err); + return; } + if (gpio_debounce) + gpio_set_debounce(gpio_pendown, gpio_debounce); + spi_bi->bus_num = bus_num; spi_bi->irq = gpio_to_irq(gpio_pendown); if (board_pdata) { board_pdata->gpio_pendown = gpio_pendown; spi_bi->platform_data = board_pdata; + if (board_pdata->get_pendown_state) + gpio_export(gpio_pendown, 0); } else { ads7846_config.gpio_pendown = gpio_pendown; } + if (!board_pdata || (board_pdata && !board_pdata->get_pendown_state)) + gpio_free(gpio_pendown); + spi_register_board_info(&ads7846_spi_board_info, 1); } #else