1. 程式人生 > >訊為ITOP4412開發板的IO配置方法

訊為ITOP4412開發板的IO配置方法

一、前言

開發板剛拿到手的時候很興奮,因為上面集成了很多外設:串列埠、藍芽、wifi、485、can、lvds、hdmi、adc、按鍵、乙太網介面、usb、camera、rtc、tf卡等,比較適合用來做為專案開發的原型板。但是,心裡也會有各種疑惑,到底這些外設是怎樣驅動起來的呢?如果自己開發的話應該怎樣去修改linux核心驅動呢?帶著這些疑問,我慢慢深入核心,尋找答案。

二、抽絲剝繭,深入核心原始碼

分析IO控制相關的核心程式碼,得知控制IO相關功能都集中在“mach-itop4412.c”檔案,路徑在:arch/arm/mach-exynos/mach-itop4412.c。

1.開發板螢幕休眠時關閉的IO

static void config_sleep_gpio_table(int array_size, unsigned int (*gpio_table)[3])
{
        u32 i, gpio;

        for (i = 0; i < array_size; i++) {
                gpio = gpio_table[i][0];
                s3c_gpio_slp_cfgpin(gpio, gpio_table[i][1]);
                s3c_gpio_slp_setpull_updown(gpio, gpio_table[i][2
]); } } /*sleep gpio table for TC4*/ static unsigned int tc4_sleep_gpio_table[][3] = { #if 1 //zhangdong reduce sleep current { EXYNOS4_GPA0(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //BT_TXD { EXYNOS4_GPA0(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //BT_RXD { EXYNOS4_GPA0(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //BT_RTS
{ EXYNOS4_GPA0(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //BT_CTS { EXYNOS4_GPA0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_TXD,SMM6260 { EXYNOS4_GPA0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_RXD { EXYNOS4_GPA0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_RTS { EXYNOS4_GPA0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_CTS { EXYNOS4_GPA1(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //DEBUG { EXYNOS4_GPA1(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //DEBUG { EXYNOS4_GPA1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SDA3 { EXYNOS4_GPA1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SCL3 #ifdef CONFIG_TC4_EVT { EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TP1_RST { EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //TestPoint #endif #ifdef CONFIG_TC4_DVT { EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //GPS_TXD { EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //GPS_RXD #endif { EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SDA4 { EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SCL4 { EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SDA5 { EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SCL5 { EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //GPS_RST { EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //PMIC_SET1 { EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //PMIC_SET2 { EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //PMIC_SET3 #ifdef CONFIG_SMM6260_MODEM //{ EXYNOS4_GPC0(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_PWON { EXYNOS4_GPX3(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_PWON #else //{ EXYNOS4_GPC0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_PWON { EXYNOS4_GPX3(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_PWON #endif { EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //VLED_ON { EXYNOS4_GPC0(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_RSTN #ifdef CONFIG_SMM6260_MODEM //{ EXYNOS4_GPC0(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //AP_SLEEP { EXYNOS4_GPC0(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //AP_WAKEUP_MD //{ EXYNOS4_GPX2(5), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_WAKEUP_AP { EXYNOS4_GPX3(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_WAKEUP_AP #else { EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //AP_SLEEP { EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //AP_WAKEUP_MD #endif { EXYNOS4_GPC1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //UART_SW config as hp out1?? { EXYNOS4_GPC1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //LED_EN18 { EXYNOS4_GPC1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //VLED_EN { EXYNOS4_GPC1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C6_SDA { EXYNOS4_GPC1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C6_SCL { EXYNOS4_GPD0(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, // MOTOR-PWM { EXYNOS4_GPD0(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //XPWMOUT1 { EXYNOS4_GPD0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C7_SDA { EXYNOS4_GPD0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C7_SCL { EXYNOS4_GPD1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C0_SDA { EXYNOS4_GPD1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C0_SCL { EXYNOS4_GPD1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C1_SDA { EXYNOS4_GPD1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C1_SCL { EXYNOS4_GPF0(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_HSYNC { EXYNOS4_GPF0(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_VSYNC { EXYNOS4_GPF0(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_VDEN { EXYNOS4_GPF0(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_VCLK { EXYNOS4_GPF0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM2M_RST { EXYNOS4_GPF0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM2M_PWDN { EXYNOS4_GPF0(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D2 { EXYNOS4_GPF0(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D3 { EXYNOS4_GPF1(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D4 { EXYNOS4_GPF1(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D5 { EXYNOS4_GPF1(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D6 { EXYNOS4_GPF1(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D7 { EXYNOS4_GPF1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM5M_RST { EXYNOS4_GPF1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM5M_PWDN { EXYNOS4_GPF1(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D10 { EXYNOS4_GPF1(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D11 { EXYNOS4_GPF2(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D12 { EXYNOS4_GPF2(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D13 { EXYNOS4_GPF2(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D14 { EXYNOS4_GPF2(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D15 { EXYNOS4_GPF2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPF2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPF2(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D18 { EXYNOS4_GPF2(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D19 { EXYNOS4_GPF3(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D20 { EXYNOS4_GPF3(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D21 { EXYNOS4_GPF3(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D22 { EXYNOS4_GPF3(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D23 { EXYNOS4_GPF3(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPF3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_G15 { EXYNOS4212_GPJ0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM_CLK { EXYNOS4212_GPJ0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM_VSYNC { EXYNOS4212_GPJ0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM_HREF { EXYNOS4212_GPJ0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA0 { EXYNOS4212_GPJ0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA1 { EXYNOS4212_GPJ0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA2 { EXYNOS4212_GPJ0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA3 { EXYNOS4212_GPJ0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA4 { EXYNOS4212_GPJ1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA5 { EXYNOS4212_GPJ1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA6 { EXYNOS4212_GPJ1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA7 { EXYNOS4212_GPJ1(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //CAM_CLK_OUT { EXYNOS4212_GPJ1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPK0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_CLK { EXYNOS4_GPK0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_CMD { EXYNOS4_GPK0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_CDn { EXYNOS4_GPK0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA0 { EXYNOS4_GPK0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA1 { EXYNOS4_GPK0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA2 { EXYNOS4_GPK0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA3 #ifdef CONFIG_TC4_EVT { EXYNOS4_GPK1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPK1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC #endif #ifdef CONFIG_TC4_DVT { EXYNOS4_GPK1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //ANX7805_PD { EXYNOS4_GPK1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //VDD50_EN #endif { EXYNOS4_GPK1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPK1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA4 { EXYNOS4_GPK1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA5 { EXYNOS4_GPK1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA6 { EXYNOS4_GPK1(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA7 { EXYNOS4_GPK2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //TF_CLK { EXYNOS4_GPK2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //TF_CMD { EXYNOS4_GPK2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //ANX7805_RSTN { EXYNOS4_GPK2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA0 { EXYNOS4_GPK2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA1 { EXYNOS4_GPK2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA2 { EXYNOS4_GPK2(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA3 { EXYNOS4_GPK3(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_CLK { EXYNOS4_GPK3(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_CMD { EXYNOS4_GPK3(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //HUB_CONNECT { EXYNOS4_GPK3(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA0 { EXYNOS4_GPK3(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA1 { EXYNOS4_GPK3(5), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA2 { EXYNOS4_GPK3(6), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA3 { EXYNOS4_GPL0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //BUCK6_EN #ifdef CONFIG_TC4_EVT { EXYNOS4_GPL0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //VDD50_EN #endif #ifdef CONFIG_TC4_DVT { EXYNOS4_GPL0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //6260_GPIO3 #endif { EXYNOS4_GPL0(2), /* S3C_GPIO_SLP_PREV*/S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //TP1_EN { EXYNOS4_GPL0(3), S3C_GPIO_SLP_OUT1, S3C_GPIO_PULL_NONE}, //NFC_EN1 out1 { EXYNOS4_GPL0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CHG_EN { EXYNOS4_GPL0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NO THIS PIN { EXYNOS4_GPL0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //HDMI_IIC_EN { EXYNOS4_GPL0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPL1(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LVDS_PWDN out0 { EXYNOS4_GPL1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPL1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPL2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //KP_COL0 #ifdef CONFIG_SMM6260_MODEM { EXYNOS4_GPL2(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_RESETBB #else { EXYNOS4_GPL2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_RESETBB #endif { EXYNOS4_GPL2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //HUB_RESET { EXYNOS4_GPL2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NFC_SCL { EXYNOS4_GPL2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NFC_SDA { EXYNOS4_GPL2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NFC_GPIO4 #ifdef CONFIG_TC4_EVT { EXYNOS4_GPL2(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //ANX7805_PWON { EXYNOS4_GPL2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //TP #endif #ifdef CONFIG_TC4_DVT //GPM4(2) --ISP_SCL1 //GPM4(3)--ISP_SDA1 //GPM3(5)--PMIC_DS2 //GPM3(6)--PMIC_DS3 //GPM3(7)--PMIC_DS4 #endif #if 1 { EXYNOS4_GPY0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY3(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY3(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY3(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* MHL_SCL_1.8V */ { EXYNOS4_GPY3(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY4(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY5(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #endif { EXYNOS4_GPZ(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //I2S0_SCLK { EXYNOS4_GPZ(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //I2S0_CDCLK { EXYNOS4_GPZ(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //I2S0_LRCK { EXYNOS4_GPZ(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //I2S0_SDI { EXYNOS4_GPZ(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //I2S0_SDO0 { EXYNOS4_GPZ(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //WIFI_PWDN { EXYNOS4_GPZ(6), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //BT_RST #else { EXYNOS4_GPA0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //BT_TXD { EXYNOS4_GPA0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //BT_RXD { EXYNOS4_GPA0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //BT_RTS { EXYNOS4_GPA0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //BT_CTS { EXYNOS4_GPA0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_TXD,SMM6260 { EXYNOS4_GPA0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_RXD { EXYNOS4_GPA0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_RTS { EXYNOS4_GPA0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AC100_CTS { EXYNOS4_GPA1(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //DEBUG { EXYNOS4_GPA1(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //DEBUG { EXYNOS4_GPA1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SDA3 { EXYNOS4_GPA1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SCL3 #ifdef CONFIG_TC4_EVT { EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TP1_RST { EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //TestPoint #endif #ifdef CONFIG_TC4_DVT { EXYNOS4_GPA1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //GPS_TXD { EXYNOS4_GPA1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //GPS_RXD #endif { EXYNOS4_GPB(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SDA4 { EXYNOS4_GPB(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SCL4 { EXYNOS4_GPB(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SDA5 { EXYNOS4_GPB(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C_SCL5 { EXYNOS4_GPB(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //GPS_RST { EXYNOS4_GPB(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //PMIC_SET1 { EXYNOS4_GPB(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //PMIC_SET2 { EXYNOS4_GPB(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //PMIC_SET3 { EXYNOS4_GPC0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_PWON { EXYNOS4_GPC0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //VLED_ON #ifdef CONFIG_SMM6260_MODEM { EXYNOS4_GPC0(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //MD_RSTN //lisw_2012.029 for Modem do not go into L3 #else { EXYNOS4_GPC0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_RSTN #endif { EXYNOS4_GPC0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AP_SLEEP { EXYNOS4_GPC0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //AP_WAKEUP_MD { EXYNOS4_GPC1(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //UART_SW config as hp out1?? { EXYNOS4_GPC1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //LED_EN18 { EXYNOS4_GPC1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //VLED_EN { EXYNOS4_GPC1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C6_SDA { EXYNOS4_GPC1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C6_SCL { EXYNOS4_GPD0(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, // MOTOR-PWM { EXYNOS4_GPD0(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //XPWMOUT1 { EXYNOS4_GPD0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C7_SDA { EXYNOS4_GPD0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C7_SCL { EXYNOS4_GPD1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C0_SDA { EXYNOS4_GPD1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C0_SCL { EXYNOS4_GPD1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C1_SDA { EXYNOS4_GPD1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //I2C1_SCL { EXYNOS4_GPF0(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_HSYNC { EXYNOS4_GPF0(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_VSYNC { EXYNOS4_GPF0(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_VDEN { EXYNOS4_GPF0(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_VCLK { EXYNOS4_GPF0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //CAM2M_RST { EXYNOS4_GPF0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //CAM2M_PWDN { EXYNOS4_GPF0(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D2 { EXYNOS4_GPF0(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D3 { EXYNOS4_GPF1(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D4 { EXYNOS4_GPF1(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LCD_D5 { EXYNOS4_GPF1(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D6 { EXYNOS4_GPF1(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D7 { EXYNOS4_GPF1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //CAM5M_RST { EXYNOS4_GPF1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //CAM5M_PWDN { EXYNOS4_GPF1(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D10 { EXYNOS4_GPF1(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D11 { EXYNOS4_GPF2(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D12 { EXYNOS4_GPF2(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D13 { EXYNOS4_GPF2(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D14 { EXYNOS4_GPF2(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D15 { EXYNOS4_GPF2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPF2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPF2(6), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D18 { EXYNOS4_GPF2(7), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D19 { EXYNOS4_GPF3(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D20 { EXYNOS4_GPF3(1), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D21 { EXYNOS4_GPF3(2), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D22 { EXYNOS4_GPF3(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //D23 { EXYNOS4_GPF3(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPF3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //MD_G15 { EXYNOS4212_GPJ0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM_CLK { EXYNOS4212_GPJ0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM_VSYNC { EXYNOS4212_GPJ0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //CAM_HREF { EXYNOS4212_GPJ0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA0 { EXYNOS4212_GPJ0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA1 { EXYNOS4212_GPJ0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA2 { EXYNOS4212_GPJ0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA3 { EXYNOS4212_GPJ0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA4 { EXYNOS4212_GPJ1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA5 { EXYNOS4212_GPJ1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA6 { EXYNOS4212_GPJ1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //DATA7 { EXYNOS4212_GPJ1(3), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //CAM_CLK_OUT { EXYNOS4212_GPJ1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPK0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_CLK { EXYNOS4_GPK0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_CMD { EXYNOS4_GPK0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_CDn { EXYNOS4_GPK0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA0 { EXYNOS4_GPK0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA1 { EXYNOS4_GPK0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA2 { EXYNOS4_GPK0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA3 #ifdef CONFIG_TC4_EVT { EXYNOS4_GPK1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPK1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC #endif #ifdef CONFIG_TC4_DVT { EXYNOS4_GPK1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //ANX7805_PD { EXYNOS4_GPK1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //VDD50_EN #endif { EXYNOS4_GPK1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPK1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA4 { EXYNOS4_GPK1(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA5 { EXYNOS4_GPK1(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA6 { EXYNOS4_GPK1(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //eMMC_DATA7 { EXYNOS4_GPK2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_CLK { EXYNOS4_GPK2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_CMD { EXYNOS4_GPK2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //ANX7805_RSTN { EXYNOS4_GPK2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA0 { EXYNOS4_GPK2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA1 { EXYNOS4_GPK2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA2 { EXYNOS4_GPK2(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //TF_DATA3 { EXYNOS4_GPK3(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_CLK { EXYNOS4_GPK3(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_CMD { EXYNOS4_GPK3(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //HUB_CONNECT { EXYNOS4_GPK3(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA0 { EXYNOS4_GPK3(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA1 { EXYNOS4_GPK3(5), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA2 { EXYNOS4_GPK3(6), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //WIFI_DATA3 { EXYNOS4_GPL0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //BUCK6_EN #ifdef CONFIG_TC4_EVT { EXYNOS4_GPL0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //VDD50_EN #endif #ifdef CONFIG_TC4_DVT { EXYNOS4_GPL0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //6260_GPIO3 #endif { EXYNOS4_GPL0(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //TP1_EN { EXYNOS4_GPL0(3), S3C_GPIO_SLP_OUT1, S3C_GPIO_PULL_NONE}, //NFC_EN1 out1 { EXYNOS4_GPL0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //CHG_EN { EXYNOS4_GPL0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NO THIS PIN { EXYNOS4_GPL0(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //HDMI_IIC_EN { EXYNOS4_GPL0(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NC { EXYNOS4_GPL1(0), S3C_GPIO_SLP_OUT0, S3C_GPIO_PULL_NONE}, //LVDS_PWDN out0 { EXYNOS4_GPL1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NC { EXYNOS4_GPL1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NC { EXYNOS4_GPL2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //KP_COL0 { EXYNOS4_GPL2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //MD_RESETBB { EXYNOS4_GPL2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //HUB_RESET { EXYNOS4_GPL2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NFC_SCL { EXYNOS4_GPL2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_NONE}, //NFC_SDA { EXYNOS4_GPL2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NFC_GPIO4 #ifdef CONFIG_TC4_EVT { EXYNOS4_GPL2(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //ANX7805_PWON { EXYNOS4_GPL2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //TP #endif #ifdef CONFIG_TC4_DVT //GPM4(2) --ISP_SCL1 //GPM4(3)--ISP_SDA1 //GPM3(5)--PMIC_DS2 //GPM3(6)--PMIC_DS3 //GPM3(7)--PMIC_DS4 #endif #if 1 { EXYNOS4_GPY0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY1(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY2(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY3(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY3(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //NC { EXYNOS4_GPY3(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* MHL_SCL_1.8V */ { EXYNOS4_GPY3(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY3(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY4(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY4(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, { EXYNOS4_GPY5(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY5(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ { EXYNOS4_GPY6(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */ #endif { EXYNOS4_GPZ(0), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //I2S0_SCLK { EXYNOS4_GPZ(1), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //I2S0_CDCLK { EXYNOS4_GPZ(2), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //I2S0_LRCK { EXYNOS4_GPZ(3), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //I2S0_SDI { EXYNOS4_GPZ(4), S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, //I2S0_SDO0 { EXYNOS4_GPZ(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //WIFI_PWDN { EXYNOS4_GPZ(6), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, //BT_RST #endif };

2.觸碰IO初始化

static int ts_init(void)
{
    int err;

    err = gpio_request_one(EXYNOS4_GPX0(0), GPIOF_IN, "TSC2007_IRQ");
    if (err) {
        printk(KERN_ERR "failed to request TSC2007_IRQ pin\n");
        return -1;
    }

    s3c_gpio_cfgpin(EXYNOS4_GPX0(0), S3C_GPIO_SFN(0xF));
    s3c_gpio_setpull(EXYNOS4_GPX0(0), S3C_GPIO_PULL_NONE);
    gpio_free(EXYNOS4_GPX0(0));

    return 0;
} 

3.MMU初始化

static void __init exynos_sysmmu_init(void)
{
    ASSIGN_SYSMMU_POWERDOMAIN(fimc0, &exynos4_device_pd[PD_CAM].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(fimc1, &exynos4_device_pd[PD_CAM].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(fimc2, &exynos4_device_pd[PD_CAM].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(fimc3, &exynos4_device_pd[PD_CAM].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(jpeg, &exynos4_device_pd[PD_CAM].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(mfc_l, &exynos4_device_pd[PD_MFC].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(mfc_r, &exynos4_device_pd[PD_MFC].dev);
    ASSIGN_SYSMMU_POWERDOMAIN(tv, &exynos4_device_pd[PD_TV].dev);
#ifdef CONFIG_VIDEO_FIMG2D
    sysmmu_set_owner(&SYSMMU_PLATDEV(g2d_acp).dev, &s5p_device_fimg2d.dev);
#endif
#if defined(CONFIG_VIDEO_SAMSUNG_S5P_MFC) || defined(CONFIG_VIDEO_MFC5X)
    sysmmu_set_owner(&SYSMMU_PLATDEV(mfc_l).dev, &s5p_device_mfc.dev);
    sysmmu_set_owner(&SYSMMU_PLATDEV(mfc_r).dev, &s5p_device_mfc.dev);
#endif
#if defined(CONFIG_VIDEO_FIMC)
    sysmmu_set_owner(&SYSMMU_PLATDEV(fimc0).dev, &s3c_device_fimc0.dev);
    sysmmu_set_owner(&SYSMMU_PLATDEV(fimc1).dev, &s3c_device_fimc1.dev);
    sysmmu_set_owner(&SYSMMU_PLATDEV(fimc2).dev, &s3c_device_fimc2.dev);
    sysmmu_set_owner(&SYSMMU_PLATDEV(fimc3).dev, &s3c_device_fimc3.dev)
            
           

相關推薦

ITOP4412開發IO配置方法

一、前言 開發板剛拿到手的時候很興奮,因為上面集成了很多外設:串列埠、藍芽、wifi、485、can、lvds、hdmi、adc、按鍵、乙太網介面、usb、camera、rtc、tf卡等,比較適合用來做為專案開發的原型板。但是,心裡也會有各種疑惑,到底這些外設

關於iTop4412開發燒錄Ubuntu的問題解決辦法

為了開發需要,專門在ARM9裡面想燒錄Ubuntu系統,發現官方給的文件會出現各種各樣的問題,經過一個禮拜的探究,也換了很多張TF卡(2G、4G、8G、16G)燒錄,最後找到問題的根源:Uboot映象大小的問題。 選擇514KB的映象檔案,不要選用444KB的映象檔案,不要問為什麼(因為燒錄很

itop4412開發觸控式螢幕除錯

由於不同觸控式螢幕的xy座標會有不同,有時候xy座標需要反過來。下面的程式碼會告訴你怎樣調整xy座標。 程式碼分析 驅動位置:drivers/input/touchscreen/ft5x06_ts.

【分享】迅iTOP4412開發-Android系統屏幕旋轉設置

原生 android4 代碼 豎屏 == watermark ont 分辨率 軟件 1.1概述 Android4.0,Androd4.4源代碼能夠編譯成手機模式和平板模式,訊為iTop4412 開發平臺 的Android系統默認編譯為平板模式。客戶須要依據自己的產品

【分享】迅iTOP4412開發-Android系統螢幕旋轉設定

1.1概述 Android4.0,Androd4.4原始碼可以編譯成手機模式和平板模式,訊為iTop4412 開發平臺 的Android系統預設編譯為平板模式。客戶需要根據自己的產品設計及應用環境,切換螢幕 的顯示方向,或者固定好一個顯示方向,例如產品中使用不同解析度的顯

iTOP4412開發上如何移植SDIO介面WIFI

近期需要把WiFi無線網路功能移植到在iTOP4412 開發平臺,查閱了相關資料,經過一段時間的研究、除錯,終於成功,將WiFi功能移植到了開發板上面,這裡筆者記錄移植過程及注意事項,方便以後工作需要。    iTOP4412開發板的WiFi模組與板卡之間的連線採用SDIO

iTop4412嵌入式開發學習之-------前言

除了 總結 應用 服務 解決辦法 思想 三方 要求 最大的 一、linux 工作的分類以及培養時間    Linux 作為一個龐大的體系,有很多相關的研究領域,總結起來大致有五個方向: 1、服務器維護:需要了解 Linux 服務,熟練使用 Shell,了解網絡配置。 2、服

【資料分享】迅4412開發核心的4.3寸螢幕logo修改方法

平臺: iTOP-4412開發板+4.3寸螢幕 問題:4.3寸螢幕-logo修改   本文件主要介紹 iTOP-4412 開發板,4.3 寸螢幕,核心 logo 修改過程。預設的映象,在 4.3 寸螢幕上是不顯示核心 logo 的。 本文件需要用到的工具包可以

iMX6UL開發驅動-PWM測試方法

平臺:迅為iMX6UL開發板  說明:PWM 配置和測試方法 測試中不需要新增額外驅動,是基於系統使用者態的 sysfs,可以使用命令來直接操作底層。 1 iMX6UL的PWM簡介 開啟 iMX6UL 的 datasheet,搜尋 PWM 關鍵詞

購買開發後在iTOP4412開發上移植SDIO介面WIFI方法

       近期需要把WiFi無線網路功能移植到在iTOP4412 開發平臺,查閱了相關資料,經過一段時間的研究、除錯,終於成功,將WiFi功能移植到了開發板上面,這裡筆者記錄移植過程及注意事項,方便以後工作需要。     iTOP4412開發板的WiFi模組與板卡之間

基於迅4418開發Ubuntu系統燒寫方法

需 PC 軟體(工具)\09-碟符格式化工具”下的 FormatTool 工具將 TF 卡格式化。直接解壓就可以直接使用,雙擊開啟,如下圖所示,作者的 TF 卡識別為 I 盤,那麼則對 I 盤格式化,注意碟符不要選錯!,選上之後點選確定,格式化。

[學習開發怎麽選]迅4412開發幫你入門嵌入式

電源管理 host 支持 href taobao dip 串口 reset 完整版 豐富選配模塊 入門視頻教程(購買後提供完整版高清教程)部分視頻觀看地址: 【視頻教程】iTOP-4412開發板之學習方法--致初學者 http://v.youku.co

嵌入式開發平臺 迅6818開發接口詳解

嵌入式開發 6818開發板 接口介紹 迅為八核iTOP-6818開發板接口詳解:iTOP-4418接口圖:iTOP-6818核心板:iTOP-6818開發板接口詳解:1.POWER電源接口電源輸入為5V/2A+,給核心板AXP228電源管理芯片提供5V電源,給底板供電。2. SWITCH電源開關輕

IMX6開發-迅imx6開發 Cortex A9四核 硬件介紹

imx6摘要: 處理器:Freescale Cortex-A9四核 i.MX6Q主頻 1 GHz 核心板配置:2GB DDR3內存 16GB EMMC存儲 擴展引腳多大320個 運行溫度-20°到+80°之間 豐富接口:支持全網通4G模塊、GPS模塊、WIFI藍牙、SATA接口、千兆以太網、CAN總線、CAM

嵌入式開發ARM開發-迅4418開發接口基本介紹

4418開發板 接口介紹 迅為4418開發板無縫兼容6818平臺,是北京迅為電子有限公司研發設計的一款開發板平臺,核心板尺寸小,引出腳多,能夠幫助工程師們快速開發新產品。行業應用:iTOP-4418開發板/6818開發板可廣泛適用於工控、智能家居、醫療、多媒體、安防、車載、金融、消費電子、手持設備、顯

iMX6開發支持單核,雙核,四核處理器,客戶產品選擇提供靈活性

操作 數據 https 默認 大內存 介紹 采購 用戶需求 tope 本文轉自迅為:http://topeetboard.com 店鋪:https://arm-board.taobao.com 處理器:Freescale Cortex-A9 四核 i.MX6Q 主頻 1.2

BlockCanary在Android原生開發中的配置方法

static 簡單 分析 用戶 多少秒 arr all 方法 阻塞 BlockCanary對主線程操作進行了完全透明的監控,並能輸出有效的信息,幫助開發分析、定位到問題所在,迅速優化應用。 下面介紹配置方法。 1. 找到配置BlockCanary的jar包和arr包 blo

恩智浦IMX6開發選哪家?迅imx6開發平臺運行怎麽樣?

https tao androi 打開 加速度 觸控 平板電腦 需要 燒寫 iTOP-i.MX6 開發板預裝 Android4.4 系統,采用 9.7 寸(或者 7 寸或者 4.3 寸)IPS 屏 幕,至少 5 點以上觸控,操作流暢,無論是高清視頻、遊戲等都會有上佳的表現,

4418開發/6818開發教你如何修改屏幕

mov null pda 暫時 down ide layer 開發平臺 圖1 開發平臺:迅為iTOP-4418/6818開發板 4418&6818屏幕修改分別需要修改uboot和內核,首先是修改uboot。 1.首先進入到android源碼目錄下: 圖1 4

圍觀迅IMX6開發QT下LVDS和HDMI如何雙屏異顯的

graphics item 環境 width 開始 blog 雙屏 dmi ats 首先將迅為-IMX6開發板分別連接9.7寸屏和HDMI顯示器 然後使用MfgTool工具燒寫QT系統 然後撥碼開關設置成從emmc啟動 在uboot命令行下設置開發板為9.7寸屏顯示(這樣也