|
|
|
@ -25,6 +25,30 @@ |
|
|
|
|
#include <asm/arch/funcmux.h> |
|
|
|
|
#include <asm/arch/pinmux.h> |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* The PINMUX macro is used to set up pinmux tables. |
|
|
|
|
*/ |
|
|
|
|
#define PINMUX(grp, mux, pupd, tri) \ |
|
|
|
|
{PINGRP_##grp, PMUX_FUNC_##mux, PMUX_PULL_##pupd, PMUX_TRI_##tri} |
|
|
|
|
|
|
|
|
|
static const struct pingroup_config disp1_default[] = { |
|
|
|
|
PINMUX(LDI, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LHP0, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LHP1, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LHP2, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LHS, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LM0, RSVD4, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LPP, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LPW0, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LPW2, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LSC0, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LSPI, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LVP1, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(LVS, DISPA, NORMAL, NORMAL), |
|
|
|
|
PINMUX(SLXD, SPDIF, NORMAL, NORMAL), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int funcmux_select(enum periph_id id, int config) |
|
|
|
|
{ |
|
|
|
|
int bad_config = config != FUNCMUX_DEFAULT; |
|
|
|
@ -257,6 +281,19 @@ int funcmux_select(enum periph_id id, int config) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case PERIPH_ID_DISP1: |
|
|
|
|
if (config == FUNCMUX_DEFAULT) { |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
for (i = PINGRP_LD0; i <= PINGRP_LD17; i++) { |
|
|
|
|
pinmux_set_func(i, PMUX_FUNC_DISPA); |
|
|
|
|
pinmux_tristate_disable(i); |
|
|
|
|
pinmux_set_pullupdown(i, PMUX_PULL_NORMAL); |
|
|
|
|
} |
|
|
|
|
pinmux_config_table(disp1_default, |
|
|
|
|
ARRAY_SIZE(disp1_default)); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
debug("%s: invalid periph_id %d", __func__, id); |
|
|
|
|