
On Wed, Apr 9, 2014 at 7:56 AM, Nikita Kiryanov nikita@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@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,
{ iomux_v3_cfg_t const *p = pad_list; int i;unsigned stride)
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,
void imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,unsigned stride);
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.