
Hi Tapani,
On 26/08/2013 13:12, Tapani wrote:
Macros wee added exactly in the time they needed, and maybe a global look was missing.
However, can you provide much more detail about this ? Which macros, in which files ?
The macros I refer to is the MX6_PAD_ ones. The semantics of them depends on the target cpu. See arch/arm/include/asm/arch-mx6/mx6-pins.h
Ok - these files are not thought to be used in the same binary, we have to change something, taking into account we should remain compatible without breaking the currently supported boards.
Let's start with some proposals. Maybe you have already introduced a CONFIG_ switch, because at the moment only one SOC per image is supported, and one of MX6Q, MX6DL must be set. We have also the same issue with -ddr files (mx6q-ddr and mx6dl-ddr). Let's say we add a CONFIG_MX6_MULTI to support all SocS at the same time.
Then we could change the file you mention adding a suffix to each pin. For example, in mx6q_pins.h we could add something like this:
#ifdef CONFIG_MX6_MULTI #define PAD_SUFFIX _6Q #else #define PAD_SUFFIX #endif
And we add the macro to each pin, such as enum { MX6_PAD_SD2_DAT1__USDHC2_DAT1##PAD_SUFFIX
In this way we could have different names only if we support multiple SOCs. We need then some accessors to get the right pin, something like mx6_pin(soc_type, pin_name), that returns the right configuration. Of course, this is a very first draft, and someone else can start with different proposals.
Generally I would avoid to convert the enums into tables, because they will increase the footprint for each board.
You should dropped them, and add them again once they are tested and if you really want to have them.
Good. Then we agree there.
Right.
Best regards, Stefano Babic