On 07/20/2016 10:51 PM, Hannes Schmelzer wrote:
On 07/20/2016 09:30 AM, Stefano Babic wrote:Hi Hannes,Hi Stefano,this patch breaks most i.MX6 boards (the not DL) and I revert it. Maybe I had to ask better before, anyway:sorry for inconvenience, i should have done more testing on this.I just tried to compile several i.mx6 boards and found out that I did not covered the MX6S which are in trouble now.Maybe all the time nobody had to use I2C #4 on an i.mx6 duallite chip, doing so i encountered this problem.On 22/06/2016 12:07, Hannes Schmelzer wrote:if we build for an i.mx6 (d)ual(l)ite CONFIC_MX6DL we shall use MX6DL_PAD instead the common MX6_PAD.Signed-off-by: Hannes Schmelzer<oe5...@oevsv.at> --- arch/arm/include/asm/arch-mx6/mx6-pins.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/arch/arm/include/asm/arch-mx6/mx6-pins.h b/arch/arm/include/asm/arch-mx6/mx6-pins.hindex 4b6bb18..3465205 100644 --- a/arch/arm/include/asm/arch-mx6/mx6-pins.h +++ b/arch/arm/include/asm/arch-mx6/mx6-pins.h @@ -18,7 +18,7 @@ enum { #include "mx6q_pins.h" #undef MX6_PAD_DECL #define MX6_PAD_DECL(name, pco, mc, mm, sio, si, pc) \ - MX6_PAD_DECLARE(MX6DL_PAD_,name, pco, mc, mm, sio, si, pc), + MX6_PAD_DECLARE(MX6DL_PAD_, name, pco, mc, mm, sio, si, pc), #include "mx6dl_pins.h" }; #elif defined(CONFIG_MX6Q) @@ -30,7 +30,7 @@ enum { #elif defined(CONFIG_MX6DL) || defined(CONFIG_MX6S) enum { #define MX6_PAD_DECL(name, pco, mc, mm, sio, si, pc) \ - MX6_PAD_DECLARE(MX6_PAD_,name, pco, mc, mm, sio, si, pc), + MX6_PAD_DECLARE(MX6DL_PAD_, name, pco, mc, mm, sio, si, pc), #include "mx6dl_pins.h" };Can you better explain the problem you had ? The name is not decisive - the important thing is that the correct include file with the right layout is included, that means mx6dl_pins.h. And this was mainlined since a lot of time.The name is decisive for sure, have a closer look to the "MX6_PAD_DECLARE" macro, In conjunction with the correct include file the prefix used to form the final register table declaration.Next the iomux-v3.h is from interest,the "#define IOMUX_PADS" has dependency on CONFIG_MX6nn, here the previous definition out from mx6-pins.h is used.I will send some V2 to address this topic fully, ok?We have several boards with 6DL into mainline, so I am missing which is your problem. Best regards, Stefano Babiccheers, Hannes
Just looked around a bit more about this.Root cause for failing this patch is, that many boards do not use the 'IOMUX_PADS' macro, instead they just directly use the definition out of "mx6dl_pins.h" for example. So we get in trouble there if we change the MX6_PAD_DECLARE macro for having MX6DL pads instead MX6 pads.
At one point of view it would make sense to me changing all boards to use the IOMUX_PADS macro for accessing pads register, because afterwards the real accessed register would be fully in dependence of CONFIG_MX6nn. On the other hand i cannot fully predict every case could happen if we simply change that with search/replace.
So it would be OK for me to drop this patch and i will use on my board: MX6DL_PAD_ENET_TX_EN__I2C4_SCL MX6DL_PAD_ENET_TXD1__I2C4_SDA instead IOMUX_PADS(PAD_ENET_TX_EN__I2C4_SCL) IOMUX_PADS(MX6DL_PAD_ENET_TXD1__I2C4_SDA ) Whats your thinking about this? cheers, Hannes _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot