diff options
Diffstat (limited to 'arch/arm/cpu/armv7/exynos/pinmux.c')
| -rw-r--r-- | arch/arm/cpu/armv7/exynos/pinmux.c | 23 | 
1 files changed, 17 insertions, 6 deletions
| diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c index 1b05ebfd7..8002bce79 100644 --- a/arch/arm/cpu/armv7/exynos/pinmux.c +++ b/arch/arm/cpu/armv7/exynos/pinmux.c @@ -220,10 +220,20 @@ static void exynos5_i2s_config(int peripheral)  {  	int i;  	struct exynos5_gpio_part1 *gpio1 = -		(struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1(); +		(struct exynos5_gpio_part1 *)samsung_get_base_gpio_part1(); +	struct exynos5_gpio_part4 *gpio4 = +		(struct exynos5_gpio_part4 *)samsung_get_base_gpio_part4(); -	for (i = 0; i < 5; i++) -		s5p_gpio_cfg_pin(&gpio1->b0, i, GPIO_FUNC(0x02)); +	switch (peripheral) { +	case PERIPH_ID_I2S0: +		for (i = 0; i < 5; i++) +			s5p_gpio_cfg_pin(&gpio4->z, i, GPIO_FUNC(0x02)); +		break; +	case PERIPH_ID_I2S1: +		for (i = 0; i < 5; i++) +			s5p_gpio_cfg_pin(&gpio1->b0, i, GPIO_FUNC(0x02)); +		break; +	}  }  void exynos5_spi_config(int peripheral) @@ -296,6 +306,7 @@ static int exynos5_pinmux_config(int peripheral, int flags)  	case PERIPH_ID_I2C7:  		exynos5_i2c_config(peripheral, flags);  		break; +	case PERIPH_ID_I2S0:  	case PERIPH_ID_I2S1:  		exynos5_i2s_config(peripheral);  		break; @@ -463,11 +474,11 @@ static int exynos4_pinmux_config(int peripheral, int flags)  int exynos_pinmux_config(int peripheral, int flags)  { -	if (cpu_is_exynos5()) +	if (cpu_is_exynos5()) {  		return exynos5_pinmux_config(peripheral, flags); -	else if (cpu_is_exynos4()) +	} else if (cpu_is_exynos4()) {  		return exynos4_pinmux_config(peripheral, flags); -	else { +	} else {  		debug("pinmux functionality not supported\n");  		return -1;  	} |