[PATCH v7 05/11] OMAP2420: hwmod data: Add GPIO

Cousson, Benoit b-cousson at ti.com
Thu Nov 25 03:02:15 EST 2010


On 11/25/2010 5:36 AM, Varadarajan, Charulatha wrote:
> 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

I'm still confused, gpio_dev_attr just contains an int and a bool:

+static struct omap_gpio_dev_attr gpio_dev_attr = {
+       .bank_width = 32,
+       .dbck_flag = false,
+};

Benoit

>
>>
>>>
>>>   #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