snow: Make coreboot set up pins for busses it knows are hooked up as such.
Coreboot knows that, for the snow board, certain pins are to be connected to bus controllers in the SOC and to the wires of a bus external to the SOC. It can configure them as such and free its payload from having to know how to set everything up. BUG=None TEST=Built and booted on Snow. BRANCH=None Change-Id: Ia39cc5d0909f1be86dee828c0419bffa16edb69b Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/55635 Commit-Queue: Stefan Reinauer <reinauer@google.com> Reviewed-by: Stefan Reinauer <reinauer@google.com> Tested-by: Stefan Reinauer <reinauer@google.com>
This commit is contained in:
parent
cc5eed84d0
commit
3128756e83
1 changed files with 28 additions and 0 deletions
|
|
@ -176,6 +176,32 @@ static void disable_usb30_pll(void)
|
|||
gpio_direction_output(usb3_pll_l, 0);
|
||||
}
|
||||
|
||||
static void gpio_init(void)
|
||||
{
|
||||
/* Set up the I2C busses. */
|
||||
exynos_pinmux_config(PERIPH_ID_I2C0, PINMUX_FLAG_NONE);
|
||||
exynos_pinmux_config(PERIPH_ID_I2C1, PINMUX_FLAG_NONE);
|
||||
exynos_pinmux_config(PERIPH_ID_I2C2, PINMUX_FLAG_NONE);
|
||||
exynos_pinmux_config(PERIPH_ID_I2C3, PINMUX_FLAG_NONE);
|
||||
exynos_pinmux_config(PERIPH_ID_I2C4, PINMUX_FLAG_NONE);
|
||||
exynos_pinmux_config(PERIPH_ID_I2C7, PINMUX_FLAG_NONE);
|
||||
|
||||
/* Set up the GPIOs used to arbitrate for I2C bus 4. */
|
||||
gpio_set_pull(GPIO_F03, GPIO_PULL_NONE);
|
||||
gpio_set_pull(GPIO_E04, GPIO_PULL_NONE);
|
||||
gpio_direction_output(GPIO_F03, 1);
|
||||
gpio_direction_input(GPIO_E04);
|
||||
|
||||
/* Set up the GPIO used to enable the audio codec. */
|
||||
gpio_set_pull(GPIO_X17, GPIO_PULL_NONE);
|
||||
gpio_set_pull(GPIO_X15, GPIO_PULL_NONE);
|
||||
gpio_direction_output(GPIO_X17, 1);
|
||||
gpio_direction_output(GPIO_X15, 1);
|
||||
|
||||
/* Set up the I2S busses. */
|
||||
exynos_pinmux_config(PERIPH_ID_I2S1, PINMUX_FLAG_NONE);
|
||||
}
|
||||
|
||||
/* this happens after cpu_init where exynos resources are set */
|
||||
static void mainboard_init(device_t dev)
|
||||
{
|
||||
|
|
@ -186,6 +212,8 @@ static void mainboard_init(device_t dev)
|
|||
};
|
||||
void *fb_addr;
|
||||
|
||||
gpio_init();
|
||||
|
||||
i2c_init(TPS69050_BUS, I2C_0_SPEED, I2C_SLAVE);
|
||||
i2c_init(7, I2C_0_SPEED, I2C_SLAVE);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue