[U-Boot] [PATCH 09/11] IMX: add additional function for pinmux using an array

Tim Harvey tharvey at gateworks.com
Wed Apr 9 17:40:43 CEST 2014


On Wed, Apr 9, 2014 at 7:56 AM, Nikita Kiryanov <nikita at compulab.co.il> wrote:
> Hi Tim,
>
>
> On 04/03/2014 09:01 AM, Tim Harvey wrote:
>>
>> Add new function that can take an array of iomux configs, an index, and
>> a stride to allow a multi-dimentional array of pinmux values to be used
>> to define pinmux values per cpu-type.
>>
>> This takes a different approach to previously proposed solutions which
>> used
>> multiple arrays of pad lists. The goal is to eliminate having these
>> multiple
>> arrays such as 'mx6q_uart1_pads' and 'mx6dl_uart1_pads' which are almost
>> identical copies of each other except for the MX6Q/MX6DL prefix on the
>> PAD.
>
>
> I like this approach, but I think you should also define the IOMUX,
> SETUP_PAD, and SETUP_PADS macros from patch 10 in this file, as they
> (macros and function) are clearly meant to be used together.
>

I agree with this. Do the macro names IOMUX, SETUP_PAD, SETUP_PADS make sense?

>
>>
>> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
>> ---
>>   arch/arm/imx-common/iomux-v3.c             | 19 +++++++++++++++----
>>   arch/arm/include/asm/imx-common/iomux-v3.h |  5 ++++-
>>   2 files changed, 19 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/arm/imx-common/iomux-v3.c
>> b/arch/arm/imx-common/iomux-v3.c
>> index b59b802..d3e1e30 100644
>> --- a/arch/arm/imx-common/iomux-v3.c
>> +++ b/arch/arm/imx-common/iomux-v3.c
>> @@ -46,12 +46,23 @@ void imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad)
>>   #endif
>>   }
>>
>> -void imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
>> -                                     unsigned count)
>> +/* configures a list of pads within an array of lists */
>> +void imx_iomux_v3_setup_multiple_pads_array(iomux_v3_cfg_t const
>> *pad_list,
>> +                                           unsigned count, unsigned list,
>> +                                           unsigned stride)
>>   {
>>         iomux_v3_cfg_t const *p = pad_list;
>>         int i;
>>
>> -       for (i = 0; i < count; i++)
>> -               imx_iomux_v3_setup_pad(*p++);
>> +       p += list;
>> +       for (i = 0; i < count; i++) {
>> +               imx_iomux_v3_setup_pad(*p);
>> +               p += stride;
>> +       }
>> +}
>> +
>> +void imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
>> +                                     unsigned count)
>> +{
>> +       imx_iomux_v3_setup_multiple_pads_array(pad_list, count, 0, 1);
>>   }
>> diff --git a/arch/arm/include/asm/imx-common/iomux-v3.h
>> b/arch/arm/include/asm/imx-common/iomux-v3.h
>> index dec11a1..c8cc45b 100644
>> --- a/arch/arm/include/asm/imx-common/iomux-v3.h
>> +++ b/arch/arm/include/asm/imx-common/iomux-v3.h
>> @@ -167,7 +167,10 @@ typedef u64 iomux_v3_cfg_t;
>>   #define GPIO_PORTF            (5 << GPIO_PORT_SHIFT)
>>
>>   void imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad);
>> +void imx_iomux_v3_setup_multiple_pads_array(iomux_v3_cfg_t const
>> *pad_list,
>> +                                           unsigned count, unsigned list,
>> +                                           unsigned stride);
>>   void imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
>> -                                    unsigned count);
>> +                                     unsigned count);
>
>
> The above change is a cleanup and should not be in this patch.
>

If there appears to be general agreement on this approach, I'll submit
a new 2-patch series just for this patch and pull it out of my overall
series.

Regards,

Tim

>>
>>   #endif        /* __MACH_IOMUX_V3_H__*/
>>
>
>
> --
> Regards,
> Nikita.


More information about the U-Boot mailing list