Hi,
I'm working on a custom board based on Sitara AM335x,
I found errors on PIN MUX init for the AM335x EVM under U-boot. We start from AM335x PSP 04.06.00.09 and modify \u-boot-am33x\board\ti\am335x\mux.c to configure pin mux for our board.
U-boot configure I2C0 pins with internal pull-down resistor enabled:
#define PULLUP_EN (0x1 << 4) /* Pull UP Selection */
#define PULLUDEN (0x0 << 3) /* Pull up enabled */
#define PULLUDDIS (0x1 << 3) /* Pull up disabled */
......
static struct module_pin_mux i2c0_pin_mux[] = {
{OFFSET(i2c0_sda), (MODE(0) | RXACTIVE |
PULLUDEN | SLEWCTRL)}, /* I2C_DATA */
{OFFSET(i2c0_scl), (MODE(0) | RXACTIVE |
PULLUDEN | SLEWCTRL)}, /* I2C_SCLK */
{-1},
};
Externally we place 10K pull-up to VDDSHV6 (3.3V) so the result is a voltage divider to approximately 2.5V on the I2C lines
You can see the same behaviour on AM335x Starter Kit (TMDSSK3358) but the voltage drops to 2.9V, because of the 4.7K pull-ups on I2C lines
best regards
Matteo Geromin