I am working on a Linux driver for the i.MX6 Quad that will need to use I2C. I am currently modifying the device tree to configure the external pins for these functions. The i.MX6 Quad reference manual, AN5078, and the device tree binding documentation in Linux have been helpful, but I am still a bit confused how I should set some of the fields in the pad control registers. It would be very helpful if someone could explain the need for the following fields in layman's terms.
- SPEED: when would you want to set this to LOW (0b00), MEDIUM (0b01 or 0b10), or MAXIMUM (0b11)? The fundamental frequencies of the signals on I2C are well below the LOW setting.
- DSE: AN5078 indicates this field controls the output impedance. Since I2C signal using voltage levels, would it be most appropriate to set this to the lowest impedance value (20 to 33 ohms)?
- SRE: when would you want to set this to SLOW (0b0) or FAST (0b1)? It seems advantageous to set this to FAST.