[PATCH v7 05/11] OMAP2420: hwmod data: Add GPIO
Varadarajan, Charulatha
charu at ti.com
Wed Nov 24 23:36:11 EST 2010
Benoit,
On Thu, Nov 25, 2010 at 03:43, Cousson, Benoit <b-cousson at ti.com> wrote:
> On 11/23/2010 3:56 PM, Varadarajan, Charulatha wrote:
>>
>> Add GPIO hwmod data for OMAP2420
>>
>> Signed-off-by: Charulatha V<charu at ti.com>
>> ---
>> arch/arm/mach-omap2/omap_hwmod_2420_data.c | 229
>> ++++++++++++++++++++++++++++
>> arch/arm/plat-omap/include/plat/gpio.h | 5 +
>> 2 files changed, 234 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
>> b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
>> index a1a3dd6..c951061 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
>> @@ -17,6 +17,7 @@
>> #include<plat/dma.h>
>> #include<plat/serial.h>
>> #include<plat/i2c.h>
>> +#include<plat/gpio.h>
>> #include<plat/omap24xx.h>
>
> Do you still need that header file?
Yes, for the gpio_dev_attr
>
>>
>> #include "omap_hwmod_common_data.h"
>> @@ -38,6 +39,10 @@ static struct omap_hwmod omap2420_iva_hwmod;
>> static struct omap_hwmod omap2420_l3_main_hwmod;
>> static struct omap_hwmod omap2420_l4_core_hwmod;
>> static struct omap_hwmod omap2420_wd_timer2_hwmod;
>> +static struct omap_hwmod omap2420_gpio1_hwmod;
>> +static struct omap_hwmod omap2420_gpio2_hwmod;
>> +static struct omap_hwmod omap2420_gpio3_hwmod;
>> +static struct omap_hwmod omap2420_gpio4_hwmod;
>>
>> /* L3 -> L4_CORE interface */
>> static struct omap_hwmod_ocp_if omap2420_l3_main__l4_core = {
>> @@ -557,6 +562,224 @@ static struct omap_hwmod omap2420_i2c2_hwmod = {
>> .flags = HWMOD_16BIT_REG,
>> };
>>
>> +/* l4_wkup -> gpio1 */
>> +static struct omap_hwmod_addr_space omap2420_gpio1_addr_space[] = {
>> + {
>> + .pa_start = 0x48018000,
>> + .pa_end = 0x480181ff,
>> + .flags = ADDR_TYPE_RT
>> + },
>> +};
>> +
>> +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio1 = {
>> + .master =&omap2420_l4_wkup_hwmod,
>> + .slave =&omap2420_gpio1_hwmod,
>> + .clk = "gpios_ick",
>> + .addr = omap2420_gpio1_addr_space,
>> + .addr_cnt = ARRAY_SIZE(omap2420_gpio1_addr_space),
>> + .user = OCP_USER_MPU | OCP_USER_SDMA,
>> +};
>> +
>> +/* l4_wkup -> gpio2 */
>> +static struct omap_hwmod_addr_space omap2420_gpio2_addr_space[] = {
>> + {
>> + .pa_start = 0x4801a000,
>> + .pa_end = 0x4801a1ff,
>> + .flags = ADDR_TYPE_RT
>> + },
>> +};
>> +
>> +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio2 = {
>> + .master =&omap2420_l4_wkup_hwmod,
>> + .slave =&omap2420_gpio2_hwmod,
>> + .clk = "gpios_ick",
>> + .addr = omap2420_gpio2_addr_space,
>> + .addr_cnt = ARRAY_SIZE(omap2420_gpio2_addr_space),
>> + .user = OCP_USER_MPU | OCP_USER_SDMA,
>> +};
>> +
>> +/* l4_wkup -> gpio3 */
>> +static struct omap_hwmod_addr_space omap2420_gpio3_addr_space[] = {
>> + {
>> + .pa_start = 0x4801c000,
>> + .pa_end = 0x4801c1ff,
>> + .flags = ADDR_TYPE_RT
>> + },
>> +};
>> +
>> +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio3 = {
>> + .master =&omap2420_l4_wkup_hwmod,
>> + .slave =&omap2420_gpio3_hwmod,
>> + .clk = "gpios_ick",
>> + .addr = omap2420_gpio3_addr_space,
>> + .addr_cnt = ARRAY_SIZE(omap2420_gpio3_addr_space),
>> + .user = OCP_USER_MPU | OCP_USER_SDMA,
>> +};
>> +
>> +/* l4_wkup -> gpio4 */
>> +static struct omap_hwmod_addr_space omap2420_gpio4_addr_space[] = {
>> + {
>> + .pa_start = 0x4801e000,
>> + .pa_end = 0x4801e1ff,
>> + .flags = ADDR_TYPE_RT
>> + },
>> +};
>> +
>> +static struct omap_hwmod_ocp_if omap2420_l4_wkup__gpio4 = {
>> + .master =&omap2420_l4_wkup_hwmod,
>> + .slave =&omap2420_gpio4_hwmod,
>> + .clk = "gpios_ick",
>> + .addr = omap2420_gpio4_addr_space,
>> + .addr_cnt = ARRAY_SIZE(omap2420_gpio4_addr_space),
>> + .user = OCP_USER_MPU | OCP_USER_SDMA,
>> +};
>> +
>> +/* gpio dev_attr */
>> +static struct omap_gpio_dev_attr gpio_dev_attr = {
>> + .bank_width = 32,
>> + .dbck_flag = false,
>> +};
>> +
<<snip>>
>> };
>>
>> diff --git a/arch/arm/plat-omap/include/plat/gpio.h
>> b/arch/arm/plat-omap/include/plat/gpio.h
>
> That change should not necessarily be there, it is not directly related to
> the subject.
>
> Maybe that should be in an extra patch just before that one.
I merged these two patches because of a comment to introduce
new variables/structures only in the patch where they are used.
Since "omap_gpio_dev_attr" is being used by hwmod DB I merged
these two patches. Do you think that hwmod DB patches should not
be merged with other patches?
>
> Beside these 2 minor comments, that patch seems good to me.
>
> Almost-acked-by: Benoit Cousson <b-cousson at ti.com>
Thanks.
>
> Regards,
> Benoit
>
>> index 5bef86d..24892a6 100644
>> --- a/arch/arm/plat-omap/include/plat/gpio.h
>> +++ b/arch/arm/plat-omap/include/plat/gpio.h
>> @@ -79,6 +79,11 @@
>> #define METHOD_GPIO_24XX 5
>> #define METHOD_GPIO_44XX 6
>>
>> +struct omap_gpio_dev_attr {
>> + int bank_width; /* GPIO bank width */
>> + bool dbck_flag; /* dbck required or not - True for OMAP3&4
>> */
>> +};
>> +
>> struct omap_gpio_platform_data {
>> u16 virtual_irq_start;
>> int bank_type;
>
>
More information about the linux-arm-kernel
mailing list