@ -10,7 +10,7 @@
# include <asm/arch/pinmux.h>
/* return 1 if a pingrp is in range */
# define pmux_pingrp_isvalid(pin) (((pin) >= 0) && ((pin) < PINGRP_COUNT))
# define pmux_pingrp_isvalid(pin) (((pin) >= 0) && ((pin) < PMUX_P INGRP_COUNT))
/* return 1 if a pmux_func is in range */
# define pmux_func_isvalid(func) \
@ -275,9 +275,9 @@ static void pinmux_set_rcv_sel(enum pmux_pingrp pin,
# endif /* TEGRA_PMX_HAS_RCV_SEL */
# endif /* TEGRA_PMX_HAS_PIN_IO_BIT_ETC */
static void pinmux_config_pingrou p ( const struct pingrou p_config * config )
static void pinmux_config_pingrp ( const struct pmux_p ingrp_config * config )
{
enum pmux_pingrp pin = config - > pingrou p ;
enum pmux_pingrp pin = config - > pingrp ;
pinmux_set_func ( pin , config - > func ) ;
pinmux_set_pullupdown ( pin , config - > pull ) ;
@ -293,32 +293,33 @@ static void pinmux_config_pingroup(const struct pingroup_config *config)
# endif
}
void pinmux_config_table ( const struct pingroup_config * config , int len )
void pinmux_config_pingrp_table ( const struct pmux_pingrp_config * config ,
int len )
{
int i ;
for ( i = 0 ; i < len ; i + + )
pinmux_config_pingrou p ( & config [ i ] ) ;
pinmux_config_pingrp ( & config [ i ] ) ;
}
# ifdef TEGRA_PMX_HAS_PA DGRPS
# ifdef TEGRA_PMX_HAS_DRV GRPS
# define pmux_pa dgrp_isvalid(pd) (((pd) >= 0) && ((pd) < PDRI VE_PIN GROU P_COUNT))
# define pmux_drv grp_isvalid(pd) (((pd) >= 0) && ((pd) < PMUX_ DRVGRP_COUNT))
# define pmux_pad_ slw_isvalid(slw) \
( ( ( slw ) > = PGRP _SLWF_MIN ) & & ( ( slw ) < = PGRP _SLWF_MAX ) )
# define pmux_slw_isvalid(slw) \
( ( ( slw ) > = PMUX _SLWF_MIN ) & & ( ( slw ) < = PMUX _SLWF_MAX ) )
# define pmux_pad_ drv_isvalid(drv) \
( ( ( drv ) > = PGRP _DRVUP_MIN ) & & ( ( drv ) < = PGRP _DRVUP_MAX ) )
# define pmux_drv_isvalid(drv) \
( ( ( drv ) > = PMUX _DRVUP_MIN ) & & ( ( drv ) < = PMUX _DRVUP_MAX ) )
# define pmux_pad_ lpmd_isvalid(lpm) \
( ( ( lpm ) > = PGRP _LPMD_X8 ) & & ( ( lpm ) < = PGRP _LPMD_X ) )
# define pmux_lpmd_isvalid(lpm) \
( ( ( lpm ) > = PMUX _LPMD_X8 ) & & ( ( lpm ) < = PMUX _LPMD_X ) )
# define pmux_pad_ schmt_isvalid(schmt) \
( ( ( schmt ) > = PGRP _SCHMT_DISABLE ) & & ( ( schmt ) < = PGRP _SCHMT_ENABLE ) )
# define pmux_schmt_isvalid(schmt) \
( ( ( schmt ) > = PMUX _SCHMT_DISABLE ) & & ( ( schmt ) < = PMUX _SCHMT_ENABLE ) )
# define pmux_pad_ hsm_isvalid(hsm) \
( ( ( hsm ) > = PGRP _HSM_DISABLE ) & & ( ( hsm ) < = PGRP _HSM_ENABLE ) )
# define pmux_hsm_isvalid(hsm) \
( ( ( hsm ) > = PMUX _HSM_DISABLE ) & & ( ( hsm ) < = PMUX _HSM_ENABLE ) )
# define HSM_SHIFT 2
# define SCHMT_SHIFT 3
@ -333,18 +334,18 @@ void pinmux_config_table(const struct pingroup_config *config, int len)
# define SLWF_SHIFT 30
# define SLWF_MASK (3 << SLWF_SHIFT)
static void padgrp _set_drvup_slwf ( enum pdri ve_pin grp grp , int slwf )
static void pinmux _set_drvup_slwf ( enum pmux_ drvgrp grp , int slwf )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( slwf = = PGRP _SLWF_NONE )
if ( slwf = = PMUX _SLWF_NONE )
return ;
/* Error check on pad and slwf */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ slw_isvalid ( slwf ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_slw_isvalid ( slwf ) ) ;
val = readl ( reg ) ;
val & = ~ SLWF_MASK ;
@ -354,18 +355,18 @@ static void padgrp_set_drvup_slwf(enum pdrive_pingrp grp, int slwf)
return ;
}
static void padgrp _set_drvdn_slwr ( enum pdri ve_pin grp grp , int slwr )
static void pinmux _set_drvdn_slwr ( enum pmux_ drvgrp grp , int slwr )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( slwr = = PGRP _SLWR_NONE )
if ( slwr = = PMUX _SLWR_NONE )
return ;
/* Error check on pad and slwr */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ slw_isvalid ( slwr ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_slw_isvalid ( slwr ) ) ;
val = readl ( reg ) ;
val & = ~ SLWR_MASK ;
@ -375,18 +376,18 @@ static void padgrp_set_drvdn_slwr(enum pdrive_pingrp grp, int slwr)
return ;
}
static void padgrp _set_drvup ( enum pdri ve_pin grp grp , int drvup )
static void pinmux _set_drvup ( enum pmux_ drvgrp grp , int drvup )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( drvup = = PGRP _DRVUP_NONE )
if ( drvup = = PMUX _DRVUP_NONE )
return ;
/* Error check on pad and drvup */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ drv_isvalid ( drvup ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_drv_isvalid ( drvup ) ) ;
val = readl ( reg ) ;
val & = ~ DRVUP_MASK ;
@ -396,18 +397,18 @@ static void padgrp_set_drvup(enum pdrive_pingrp grp, int drvup)
return ;
}
static void padgrp _set_drvdn ( enum pdri ve_pin grp grp , int drvdn )
static void pinmux _set_drvdn ( enum pmux_ drvgrp grp , int drvdn )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( drvdn = = PGRP _DRVDN_NONE )
if ( drvdn = = PMUX _DRVDN_NONE )
return ;
/* Error check on pad and drvdn */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ drv_isvalid ( drvdn ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_drv_isvalid ( drvdn ) ) ;
val = readl ( reg ) ;
val & = ~ DRVDN_MASK ;
@ -417,18 +418,18 @@ static void padgrp_set_drvdn(enum pdrive_pingrp grp, int drvdn)
return ;
}
static void padgrp _set_lpmd ( enum pdri ve_pin grp grp , enum pgrp _lpmd lpmd )
static void pinmux _set_lpmd ( enum pmux_ drvgrp grp , enum pmux _lpmd lpmd )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( lpmd = = PGRP _LPMD_NONE )
if ( lpmd = = PMUX _LPMD_NONE )
return ;
/* Error check pad and lpmd value */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ lpmd_isvalid ( lpmd ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_lpmd_isvalid ( lpmd ) ) ;
val = readl ( reg ) ;
val & = ~ LPMD_MASK ;
@ -438,21 +439,21 @@ static void padgrp_set_lpmd(enum pdrive_pingrp grp, enum pgrp_lpmd lpmd)
return ;
}
static void padgrp _set_schmt ( enum pdri ve_pin grp grp , enum pgrp _schmt schmt )
static void pinmux _set_schmt ( enum pmux_ drvgrp grp , enum pmux _schmt schmt )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( schmt = = PGRP _SCHMT_NONE )
if ( schmt = = PMUX _SCHMT_NONE )
return ;
/* Error check pad */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ schmt_isvalid ( schmt ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_schmt_isvalid ( schmt ) ) ;
val = readl ( reg ) ;
if ( schmt = = PGRP _SCHMT_ENABLE )
if ( schmt = = PMUX _SCHMT_ENABLE )
val | = ( 1 < < SCHMT_SHIFT ) ;
else
val & = ~ ( 1 < < SCHMT_SHIFT ) ;
@ -461,21 +462,21 @@ static void padgrp_set_schmt(enum pdrive_pingrp grp, enum pgrp_schmt schmt)
return ;
}
static void padgrp _set_hsm ( enum pdri ve_pin grp grp , enum pgrp _hsm hsm )
static void pinmux _set_hsm ( enum pmux_ drvgrp grp , enum pmux _hsm hsm )
{
u32 * reg = DRV_REG ( grp ) ;
u32 val ;
/* NONE means unspecified/do not change/use POR value */
if ( hsm = = PGRP _HSM_NONE )
if ( hsm = = PMUX _HSM_NONE )
return ;
/* Error check pad */
assert ( pmux_pa dgrp_isvalid ( grp ) ) ;
assert ( pmux_pad_ hsm_isvalid ( hsm ) ) ;
assert ( pmux_drv grp_isvalid ( grp ) ) ;
assert ( pmux_hsm_isvalid ( hsm ) ) ;
val = readl ( reg ) ;
if ( hsm = = PGRP _HSM_ENABLE )
if ( hsm = = PMUX _HSM_ENABLE )
val | = ( 1 < < HSM_SHIFT ) ;
else
val & = ~ ( 1 < < HSM_SHIFT ) ;
@ -484,24 +485,25 @@ static void padgrp_set_hsm(enum pdrive_pingrp grp, enum pgrp_hsm hsm)
return ;
}
static void padctrl_config_pingrou p ( const struct padctrl _config * config )
static void pinmux_config_drvgr p ( const struct pmux_drvgrp _config * config )
{
enum pdri ve_pin grp grp = config - > pa dgrp;
padgrp _set_drvup_slwf ( grp , config - > slwf ) ;
padgrp _set_drvdn_slwr ( grp , config - > slwr ) ;
padgrp _set_drvup ( grp , config - > drvup ) ;
padgrp _set_drvdn ( grp , config - > drvdn ) ;
padgrp _set_lpmd ( grp , config - > lpmd ) ;
padgrp _set_schmt ( grp , config - > schmt ) ;
padgrp _set_hsm ( grp , config - > hsm ) ;
enum pmux_ drvgrp grp = config - > drv grp ;
pinmux _set_drvup_slwf ( grp , config - > slwf ) ;
pinmux _set_drvdn_slwr ( grp , config - > slwr ) ;
pinmux _set_drvup ( grp , config - > drvup ) ;
pinmux _set_drvdn ( grp , config - > drvdn ) ;
pinmux _set_lpmd ( grp , config - > lpmd ) ;
pinmux _set_schmt ( grp , config - > schmt ) ;
pinmux _set_hsm ( grp , config - > hsm ) ;
}
void padgrp_config_table ( const struct padctrl_config * config , int len )
void pinmux_config_drvgrp_table ( const struct pmux_drvgrp_config * config ,
int len )
{
int i ;
for ( i = 0 ; i < len ; i + + )
padctrl_config_pingrou p ( & config [ i ] ) ;
pinmux_config_drvgr p ( & config [ i ] ) ;
}
# endif /* TEGRA_PMX_HAS_PA DGRPS */
# endif /* TEGRA_PMX_HAS_DRV GRPS */