Hi Hannes, On 21/07/2016 08:10, Hannes Schmelzer wrote:
> 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. Both are allowed. IOMUX_PADS *must* be used in case the board supports multiple variant of the processor (DL, Quad,..). If the board has just one variant, the MX6 defines from the corresponding header can be used. > So we get in trouble there if we change the MX6_PAD_DECLARE macro for > having MX6DL pads instead MX6 pads. I am not getting where is the trouble, because there are already a lot of boards using it. Let's see.... > > 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 > Now I get the point - and yes, there is an exception for I2C in the pinmux. This was discussed at the beginning when IOMUX_PADS was introduced and how to support the different layout of the SOC variants. We agreed to tread differently I2C. This means that a i2c_pads_info structure must be set for each variant of the SOC that board supports. With help of the is_cpu_type() macro (or one of this family), the correct structure is selected and the pinmux can be set. The right way to do is: static struct i2c_pads_info i2c_pad = { .scl = { .i2c_mode = MX6DL_PAD_ENET_TX_EN__I2C4_SCL | <pull up>, .gpio_mode = MX6DL_PAD_ENET_TX_EN__GPIO1_IO28 | <..>, .gp = IMX_GPIO_NR(1, 28) }, .sda = { .i2c_mode = MX6DL_PAD_ENET_TXD1__I2C4_SDA | <pull >, .gpio_mode = MX6DL_PAD_ENET_TXD1__GPIO1_IO29 | <pull>, .gp = IMX_GPIO_NR(1, 29) } }; and then you call setup_i2c() with the structure. Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot