예제 #1
0
#include "board-harmony.h"

#define DEFAULT_DRIVE(_name)                                    \
        {                                                       \
                .pingroup = TEGRA_DRIVE_PINGROUP_##_name,       \
                .hsm = TEGRA_HSM_DISABLE,                       \
                .schmitt = TEGRA_SCHMITT_ENABLE,                \
                .drive = TEGRA_DRIVE_DIV_1,                     \
                .pull_down = TEGRA_PULL_31,                     \
                .pull_up = TEGRA_PULL_31,                       \
                .slew_rising = TEGRA_SLEW_SLOWEST,              \
                .slew_falling = TEGRA_SLEW_SLOWEST,             \
        }

static __initdata struct tegra_drive_pingroup_config harmony_drive_pinmux[] = {
        DEFAULT_DRIVE(SDIO1),
};

static __initdata struct tegra_pingroup_config harmony_pinmux[] = {
	{TEGRA_PINGROUP_ATA,   TEGRA_MUX_IDE,           TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATB,   TEGRA_MUX_SDIO4,         TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATC,   TEGRA_MUX_NAND,          TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATD,   TEGRA_MUX_GMI,           TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATE,   TEGRA_MUX_GMI,           TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_CDEV1, TEGRA_MUX_PLLA_OUT,      TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_CDEV2, TEGRA_MUX_PLLP_OUT4,     TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE},
	{TEGRA_PINGROUP_CRTP,  TEGRA_MUX_CRT,           TEGRA_PUPD_NORMAL,    TEGRA_TRI_TRISTATE},
	{TEGRA_PINGROUP_CSUS,  TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE},
	{TEGRA_PINGROUP_DAP1,  TEGRA_MUX_DAP1,          TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_DAP2,  TEGRA_MUX_DAP2,          TEGRA_PUPD_NORMAL,    TEGRA_TRI_TRISTATE},
	{TEGRA_PINGROUP_DAP3,  TEGRA_MUX_DAP3,          TEGRA_PUPD_NORMAL,    TEGRA_TRI_TRISTATE},
예제 #2
0
#define SET_DRIVE(_name, _hsm, _schmitt, _drive, _pulldn_drive, _pullup_drive, _pulldn_slew, _pullup_slew) \
	{                                               \
		.pingroup = TEGRA_DRIVE_PINGROUP_##_name,   \
		.hsm = TEGRA_HSM_##_hsm,                    \
		.schmitt = TEGRA_SCHMITT_##_schmitt,        \
		.drive = TEGRA_DRIVE_##_drive,              \
		.pull_down = TEGRA_PULL_##_pulldn_drive,    \
		.pull_up = TEGRA_PULL_##_pullup_drive,		\
		.slew_rising = TEGRA_SLEW_##_pulldn_slew,   \
		.slew_falling = TEGRA_SLEW_##_pullup_slew,	\
	}


static __initdata struct tegra_drive_pingroup_config n1_drive_pinmux[] = {
	DEFAULT_DRIVE(AO1),
	DEFAULT_DRIVE(AT1),
	DEFAULT_DRIVE(DBG),
	DEFAULT_DRIVE(VI1),
	DEFAULT_DRIVE(VI2),
	DEFAULT_DRIVE(SDIO1),
	SET_DRIVE(DDC,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	SET_DRIVE(DTF,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	SET_DRIVE(I2CP,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	SET_DRIVE(RM,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
};

static __initdata struct tegra_pingroup_config n1_pinmux[] = {
	{TEGRA_PINGROUP_ATA,   TEGRA_MUX_GMI,           TEGRA_PUPD_PULL_UP,   TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATB,   TEGRA_MUX_SDIO4,         TEGRA_PUPD_PULL_UP,   TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATC,   TEGRA_MUX_GMI,           TEGRA_PUPD_PULL_UP,   TEGRA_TRI_NORMAL},
		.slew_falling = TEGRA_SLEW_##_pullup_slew,	\
	}
#define RF_REQUEST_DRIVE(_name)					\
	{							\
		.pingroup = TEGRA_DRIVE_PINGROUP_##_name,	\
		.hsm = TEGRA_HSM_DISABLE,			\
		.schmitt = TEGRA_SCHMITT_DISABLE,		\
		.drive = TEGRA_DRIVE_DIV_1,			\
		.pull_down = TEGRA_PULL_31,			\
		.pull_up = TEGRA_PULL_31,			\
		.slew_rising = TEGRA_SLEW_SLOWEST,		\
		.slew_falling = TEGRA_SLEW_SLOWEST,		\
	}

static __initdata struct tegra_drive_pingroup_config ventana_drive_pinmux[] = {
	DEFAULT_DRIVE(DDC),
	DEFAULT_DRIVE(VI1),
	DEFAULT_DRIVE(SDIO1),

	SET_DRIVE(DBG,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	SET_DRIVE(VI2,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	SET_DRIVE(AT1,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	SET_DRIVE(AO1,		DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
	RF_REQUEST_DRIVE(CSUS),
};

static __initdata struct tegra_pingroup_config ventana_pinmux[] = {
	{TEGRA_PINGROUP_ATA,   TEGRA_MUX_IDE,           TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATB,   TEGRA_MUX_SDIO4,         TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATC,   TEGRA_MUX_NAND,          TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	{TEGRA_PINGROUP_ATD,   TEGRA_MUX_GMI,           TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
	}

#define DAP_PAD_DRIVE(_name)					\
	{							\
		.pingroup = TEGRA_DRIVE_PINGROUP_##_name,	\
		.hsm = TEGRA_HSM_DISABLE,			\
		.schmitt = TEGRA_SCHMITT_ENABLE,		\
		.drive = TEGRA_DRIVE_DIV_1,			\
		.pull_down = TEGRA_PULL_3,			\
		.pull_up = TEGRA_PULL_3,			\
		.slew_rising = TEGRA_SLEW_SLOWEST,		\
		.slew_falling = TEGRA_SLEW_SLOWEST,		\
	}

static __initdata struct tegra_drive_pingroup_config p852_drive_pinmux[] = {
	DEFAULT_DRIVE(DBG),
	DEFAULT_DRIVE(DDC),
	DEFAULT_DRIVE(VI1),
	DEFAULT_DRIVE(VI2),
	DEFAULT_DRIVE(SDIO1),
	P852_PAD_DRIVE(SPI),
	DAP_PAD_DRIVE(DAP1),
	DAP_PAD_DRIVE(DAP2),
	DEFAULT_DRIVE(CDEV1),
	DEFAULT_DRIVE(CDEV2),
};

static __initdata struct tegra_drive_pingroup_config
	p852_drive_pinmux_sku8_sku9[] = {
		DAP_PAD_DRIVE(DAP3),
};