mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
tegra: Add I2C support to funcmux
Add support to funcmux for selecting I2C functions and programming the pinmux appropriately. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Warren <twarren@nvidia.com>
This commit is contained in:
parent
2faf1863de
commit
8a1133c607
2 changed files with 47 additions and 0 deletions
|
@ -66,6 +66,46 @@ int funcmux_select(enum periph_id id, int config)
|
|||
}
|
||||
break;
|
||||
|
||||
case PERIPH_ID_DVC_I2C:
|
||||
/* there is only one selection, pinmux_config is ignored */
|
||||
if (config == FUNCMUX_DVC_I2CP) {
|
||||
pinmux_set_func(PINGRP_I2CP, PMUX_FUNC_I2C);
|
||||
pinmux_tristate_disable(PINGRP_I2CP);
|
||||
}
|
||||
break;
|
||||
|
||||
case PERIPH_ID_I2C1:
|
||||
/* support pinmux_config of 0 for now, */
|
||||
if (config == FUNCMUX_I2C1_RM) {
|
||||
pinmux_set_func(PINGRP_RM, PMUX_FUNC_I2C);
|
||||
pinmux_tristate_disable(PINGRP_RM);
|
||||
}
|
||||
break;
|
||||
case PERIPH_ID_I2C2: /* I2C2 */
|
||||
switch (config) {
|
||||
case FUNCMUX_I2C2_DDC: /* DDC pin group, select I2C2 */
|
||||
pinmux_set_func(PINGRP_DDC, PMUX_FUNC_I2C2);
|
||||
/* PTA to HDMI */
|
||||
pinmux_set_func(PINGRP_PTA, PMUX_FUNC_HDMI);
|
||||
pinmux_tristate_disable(PINGRP_DDC);
|
||||
break;
|
||||
case FUNCMUX_I2C2_PTA: /* PTA pin group, select I2C2 */
|
||||
pinmux_set_func(PINGRP_PTA, PMUX_FUNC_I2C2);
|
||||
/* set DDC_SEL to RSVDx (RSVD2 works for now) */
|
||||
pinmux_set_func(PINGRP_DDC, PMUX_FUNC_RSVD2);
|
||||
pinmux_tristate_disable(PINGRP_PTA);
|
||||
bad_config = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case PERIPH_ID_I2C3: /* I2C3 */
|
||||
/* support pinmux_config of 0 for now */
|
||||
if (config == FUNCMUX_I2C3_DTF) {
|
||||
pinmux_set_func(PINGRP_DTF, PMUX_FUNC_I2C3);
|
||||
pinmux_tristate_disable(PINGRP_DTF);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
debug("%s: invalid periph_id %d", __func__, id);
|
||||
return -1;
|
||||
|
|
|
@ -32,6 +32,13 @@ enum {
|
|||
FUNCMUX_UART1_IRRX_IRTX = 0,
|
||||
FUNCMUX_UART2_IRDA = 0,
|
||||
FUNCMUX_UART4_GMC = 0,
|
||||
|
||||
/* I2C configs */
|
||||
FUNCMUX_DVC_I2CP = 0,
|
||||
FUNCMUX_I2C1_RM = 0,
|
||||
FUNCMUX_I2C2_DDC = 0,
|
||||
FUNCMUX_I2C2_PTA,
|
||||
FUNCMUX_I2C3_DTF = 0,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue