GPIO167_LCD_D38,
	GPIO168_LCD_D39,
	GPIO169_LCDA_DE,
	GPIO170_LCDA_VSO,
	GPIO171_LCDA_HSO,
);

static UX500_PINS(gavini_r0_0_pins_uart0,
	GPIO0_U0_CTSn	| PIN_INPUT_PULLUP,
	GPIO1_U0_RTSn	| PIN_OUTPUT_HIGH,
	GPIO2_U0_RXD	| PIN_INPUT_PULLUP,
	GPIO3_U0_TXD	| PIN_OUTPUT_HIGH,
);

static struct ux500_pin_lookup gavini_r0_0_lookup_pins[] = {
	PIN_LOOKUP("uart0", &gavini_r0_0_pins_uart0),
	PIN_LOOKUP("mcde-dpi", &gavini_r0_0_mcde_dpi),
	PIN_LOOKUP("nmk-i2c.0", &gavini_r0_0_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &gavini_r0_0_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &gavini_r0_0_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &gavini_r0_0_i2c3),
};

extern struct device *gps_dev;
extern struct class *sec_class;

static pin_cfg_t gavini_gps_rev0_0_pins[] = {
	GPIO4_U1_RXD	| PIN_INPUT_PULLUP,	/* GPS UART */
	GPIO5_U1_TXD	| PIN_OUTPUT_HIGH,	/* GPS UART */
	PIN_CFG(GPS_RST_N_GAVINI_R0_0,GPIO)	| PIN_OUTPUT_HIGH,	/* GPS_RST_N */
	PIN_CFG(EN_GPS_GAVINI_R0_0,GPIO)	| PIN_OUTPUT_HIGH,	/* GPS_EN */
Ejemplo n.º 2
0
	GPIO256_USB_NXT,
	GPIO257_USB_STP		| PIN_OUTPUT_HIGH,
	GPIO258_USB_XCLK,
	GPIO259_USB_DIR,
	GPIO260_USB_DAT7,
	GPIO261_USB_DAT6,
	GPIO262_USB_DAT5,
	GPIO263_USB_DAT4,
	GPIO264_USB_DAT3,
	GPIO265_USB_DAT2,
	GPIO266_USB_DAT1,
	GPIO267_USB_DAT0,
);

static struct ux500_pin_lookup codina_r0_0_lookup_pins[] = {
	PIN_LOOKUP("mcde-dpi", &codina_r0_0_mcde_dpi),
	PIN_LOOKUP("nmk-i2c.0", &codina_r0_0_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &codina_r0_0_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &codina_r0_0_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &codina_r0_0_i2c3),
	PIN_LOOKUP("musb-ux500.0", &codina_pins_usb),
	PIN_LOOKUP("ab-iddet.0", &codina_pins_usb),
};

static pin_cfg_t codina_gps_uart_pins[] = {
	GPIO4_U1_RXD | PIN_INPUT_PULLUP,
	GPIO5_U1_TXD | PIN_OUTPUT_HIGH,
	GPIO6_U1_CTSn | PIN_INPUT_PULLUP,
	GPIO7_U1_RTSn | PIN_OUTPUT_HIGH,
};
/*
 * Pins disabled when not used to save power
 */
static UX500_PINS(golden_bringup_sdmmc,
	/* MMC0 (MicroSD card) */
	GPIO22_MC0_FBCLK	| PIN_INPUT_NOPULL,
	GPIO23_MC0_CLK		| PIN_OUTPUT_LOW,
	GPIO24_MC0_CMD		| PIN_INPUT_PULLUP,
	GPIO25_MC0_DAT0		| PIN_INPUT_PULLUP,
	GPIO26_MC0_DAT1		| PIN_INPUT_PULLUP,
	GPIO27_MC0_DAT2		| PIN_INPUT_PULLUP,
	GPIO28_MC0_DAT3		| PIN_INPUT_PULLUP,
);

static struct ux500_pin_lookup golden_bringup_lookup_sdmmc_pins[] = {
	PIN_LOOKUP("sdi0", &golden_bringup_sdmmc),
};


/*
 * Pins disabled when not used to save power
 */

	/* Proximity & Light Sensor I2C */
static UX500_PINS(golden_bringup_i2c0,
	GPIO147_I2C0_SCL |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO148_I2C0_SDA |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
);
static UX500_PINS(mop500_pins_sensors1p_v60,
	GPIO217_GPIO| PIN_INPUT_PULLUP |
		  PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO145_GPIO | PIN_INPUT_PULLDOWN |
		  PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO139_GPIO | PIN_INPUT_PULLUP |
		  PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
);

static UX500_PINS(mop500_pins_sensors1p,
	PIN_CFG_INPUT(GPIO_PROX_SENSOR, GPIO, NOPULL),
	PIN_CFG_INPUT(GPIO_HAL_SENSOR, GPIO, NOPULL),
);

static struct ux500_pin_lookup mop500_runtime_pins[] = {
	PIN_LOOKUP("mcde-tvout", &mop500_pins_mcde_tvout),
	PIN_LOOKUP("av8100-hdmi", &mop500_pins_mcde_hdmi),
	PIN_LOOKUP("nmk-i2c.0", &mop500_pins_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &mop500_pins_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &mop500_pins_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &mop500_pins_i2c3),
	PIN_LOOKUP("ske", &mop500_pins_ske),
	PIN_LOOKUP("sdi0", &mop500_pins_sdi0),
	PIN_LOOKUP("sdi1", &mop500_pins_sdi1),
	PIN_LOOKUP("sdi2", &mop500_pins_sdi2),
	PIN_LOOKUP("sdi4", &mop500_pins_sdi4),
	PIN_LOOKUP("musb-ux500.0", &mop500_pins_usb),
	PIN_LOOKUP("spi2", &mop500_pins_spi2),
};

static struct ux500_pin_lookup mop500_runtime_pins_v60[] = {
	GPIO161_KP_I3	|	PIN_INPUT_PULLDOWN	|	PIN_SLPM_INPUT_PULLUP,
	GPIO162_KP_I2	|	PIN_INPUT_PULLDOWN	|	PIN_SLPM_INPUT_PULLUP,
	GPIO163_KP_I1	|	PIN_INPUT_PULLDOWN	|	PIN_SLPM_INPUT_PULLUP,
	GPIO164_KP_I0	|	PIN_INPUT_PULLDOWN	|	PIN_SLPM_INPUT_PULLUP,
	GPIO157_KP_O7	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO158_KP_O6	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO159_KP_O5	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO160_KP_O4	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO165_KP_O3	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO166_KP_O2	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO167_KP_O1	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO168_KP_O0	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
);

static struct ux500_pin_lookup mop500_pins[] = {
	PIN_LOOKUP("nmk-i2c.1", &mop500_pins_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &mop500_pins_i2c2),
	PIN_LOOKUP("ske", &mop500_pins_ske),
	PIN_LOOKUP("sdi1", &mop500_pins_sdi1),
	PIN_LOOKUP("sdi2", &mop500_pins_sdi2),
	PIN_LOOKUP("sdi3", &mop500_pins_sdi3),
	PIN_LOOKUP("sdi4", &mop500_pins_sdi4),
	PIN_LOOKUP("musb-ux500.0", &mop500_pins_usb),
};
void __init mop500_pins_init(void)
{
	nmk_config_pins(mop500_pins_default, ARRAY_SIZE(mop500_pins_default));
	ux500_pins_add(mop500_pins, ARRAY_SIZE(mop500_pins));

	switch (pinsfor) {
	case PINS_FOR_U9500_21:
	GPIO261_USB_DAT6,
	GPIO262_USB_DAT5,
	GPIO263_USB_DAT4,
	GPIO264_USB_DAT3,
	GPIO265_USB_DAT2,
	GPIO266_USB_DAT1,
	GPIO267_USB_DAT0,
);

static UX500_PINS(ccu9540_pins_sensors1p,
	GPIO229_GPIO | PIN_INPUT_NOPULL |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
);

static struct ux500_pin_lookup u9540_ccu_pins[] = {
	PIN_LOOKUP("ske", &u9540_ccu_pins_ske),
	PIN_LOOKUP("sdi0", &ccu9540_pins_sdi0),
	PIN_LOOKUP("sdi1", &ccu9540_pins_sdi1),
	PIN_LOOKUP("sdi4", &ccu9540_pins_sdi4),
	PIN_LOOKUP("musb-ux500.0", &ccu9540_pins_usb),
	PIN_LOOKUP("ab-iddet.0", &ccu9540_pins_usb),
	PIN_LOOKUP("gpio-keys.0", &ccu9540_pins_sensors1p),
};



/*
 * Sleep pin configuration for u8500 platform.
 * If another HW is used the GPIO's must be configured
 * correctly when entering sleep for optimal power
 * consumption.
		PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH,
);

static UX500_PINS(kyle_r0_1_pins_uart1,
	GPIO6_U1_CTSn	| PIN_INPUT_PULLUP |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO7_U1_RTSn	| PIN_OUTPUT_HIGH |
		PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH,
	GPIO4_U1_RXD	| PIN_INPUT_PULLUP |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO5_U1_TXD	| PIN_OUTPUT_HIGH |
		PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH,
);

static struct ux500_pin_lookup kyle_lookup_pins[] = {
	PIN_LOOKUP("nmk-i2c.0", &kyle_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &kyle_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &kyle_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &kyle_i2c3),
	PIN_LOOKUP("musb-ux500.0", &kyle_pins_usb),
	PIN_LOOKUP("uart0", &kyle_bringup_pins_uart0),
};

static struct ux500_pin_lookup kyle_r0_1_lookup_pins[] = {
	PIN_LOOKUP("nmk-i2c.0", &kyle_i2c0),
	PIN_LOOKUP("nmk-i2c.2", &kyle_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &kyle_i2c3),
	PIN_LOOKUP("musb-ux500.0", &kyle_pins_usb),
	PIN_LOOKUP("uart0", &kyle_bringup_pins_uart0),
	PIN_LOOKUP("uart1", &kyle_r0_1_pins_uart1),
};
	GPIO157_KP_O7	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO158_KP_O6	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO159_KP_O5	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO160_KP_O4	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO165_KP_O3	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO166_KP_O2	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO167_KP_O1	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
	GPIO168_KP_O0	|	PIN_INPUT_PULLUP	|	PIN_SLPM_OUTPUT_LOW,
);

static UX500_PINS(mop500_pins_mcde_hdmi,
	GPIO69_LCD_VSI1	| PIN_INPUT_PULLUP,
);

static struct ux500_pin_lookup mop500_pins[] = {
	PIN_LOOKUP("nmk-i2c.0", &mop500_pins_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &mop500_pins_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &mop500_pins_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &mop500_pins_i2c3),
	PIN_LOOKUP("ske", &mop500_pins_ske),
	PIN_LOOKUP("sdi1", &mop500_pins_sdi1),
	PIN_LOOKUP("sdi2", &mop500_pins_sdi2),
	PIN_LOOKUP("sdi3", &mop500_pins_sdi3),
	PIN_LOOKUP("sdi4", &mop500_pins_sdi4),
	PIN_LOOKUP("musb-ux500.0", &mop500_pins_usb),
	PIN_LOOKUP("av8100-hdmi", &mop500_pins_mcde_hdmi),
};

void __init mop500_pins_init(void)
{
	nmk_config_pins(mop500_pins_default, ARRAY_SIZE(mop500_pins_default));
	GPIO167_LCD_D38,
	GPIO168_LCD_D39,
	GPIO169_LCDA_DE,
	GPIO170_LCDA_VSO,
	GPIO171_LCDA_HSO,
);

static UX500_PINS(gti9060_r0_1_pins_uart0,
	GPIO0_U0_CTSn	| PIN_INPUT_PULLUP,
	GPIO1_U0_RTSn	| PIN_OUTPUT_HIGH,
	GPIO2_U0_RXD	| PIN_INPUT_PULLUP,
	GPIO3_U0_TXD	| PIN_OUTPUT_HIGH,
);

static struct ux500_pin_lookup gti9060_r0_1_lookup_pins[] = {
	PIN_LOOKUP("uart0", &gti9060_r0_1_pins_uart0),
	PIN_LOOKUP("mcde-dpi", &gti9060_r0_1_mcde_dpi),
	PIN_LOOKUP("nmk-i2c.0", &gti9060_r0_1_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &gti9060_r0_1_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &gti9060_r0_1_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &gti9060_r0_1_i2c3),
};

extern struct device *gps_dev;
extern struct class *sec_class;

static pin_cfg_t gti9060_gps_rev0_1_pins[] = {
	GPIO4_U1_RXD	| PIN_INPUT_PULLUP,	/* GPS UART */
	GPIO5_U1_TXD	| PIN_OUTPUT_HIGH,	/* GPS UART */
	PIN_CFG(GPS_RST_N_GTI9060_R0_1,GPIO)	| PIN_OUTPUT_HIGH,	/* GPS_RST_N */
	PIN_CFG(EN_GPS_GTI060_R0_1,GPIO)		| PIN_OUTPUT_HIGH,	/* GPS_EN */
Ejemplo n.º 10
0
	GPIO267_USB_DAT0,
);

static UX500_PINS(janice_pins_uart0,
	GPIO0_U0_CTSn	| PIN_INPUT_PULLUP |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO1_U0_RTSn	| PIN_OUTPUT_HIGH |
		PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH,
	GPIO2_U0_RXD	| PIN_INPUT_PULLUP |
		PIN_SLPM_GPIO | PIN_SLPM_INPUT_NOPULL,
	GPIO3_U0_TXD	| PIN_OUTPUT_HIGH |
		PIN_SLPM_GPIO | PIN_SLPM_OUTPUT_HIGH,
);

static struct ux500_pin_lookup janice_r0_0_lookup_pins[] = {
	PIN_LOOKUP("uart0", &janice_pins_uart0),
	PIN_LOOKUP("mcde-dpi", &janice_r0_0_mcde_dpi),
	PIN_LOOKUP("nmk-i2c.0", &janice_r0_0_i2c0),
	PIN_LOOKUP("nmk-i2c.1", &janice_r0_0_i2c1),
	PIN_LOOKUP("nmk-i2c.2", &janice_r0_0_i2c2),
	PIN_LOOKUP("nmk-i2c.3", &janice_r0_0_i2c3),
	PIN_LOOKUP("musb-ux500.0", &janice_pins_usb),
};

extern struct device *gps_dev;
extern struct class *sec_class;

static pin_cfg_t janice_gps_rev0_0_pins[] = {
	GPIO4_U1_RXD | PIN_INPUT_PULLUP, /* GPS UART */
	GPIO5_U1_TXD | PIN_OUTPUT_HIGH, /* GPS UART */
	PIN_CFG(GPS_RST_N_JANICE_R0_0, GPIO) | PIN_OUTPUT_HIGH, /* GPS_RST_N */