static int __init printer_board_lateinit(void) { printk(">>>>>>start init sew-290 modem\n"); if (!gpio_is_valid(GPIO_PB(29))) printk("GPIO_PB(29) invaild.\n"); if (gpio_request(GPIO_PB(29), "modem_rst")) printk("GPIO_PB(29) request failed.\n"); else gpio_direction_output(GPIO_PB(29), 0); if (!gpio_is_valid(GPIO_PE(8))) printk("GPIO_PE(8) invaild.\n"); if(gpio_request(GPIO_PE(8), "modem_vcc")) printk("GPIO_PE(8) request failed.\n"); else gpio_direction_output(GPIO_PE(8), 1); if (!gpio_is_valid(GPIO_PD(12))) printk("GPIO_PD(12), is invaild.\n"); if(gpio_request(GPIO_PD(12), "modem_init")) printk("GPIO_PD(12) request faild.\n"); else gpio_direction_output(GPIO_PD(12), 1); INIT_DELAYED_WORK(&modem_work, init_modem); schedule_delayed_work(&modem_work, msecs_to_jiffies(5000)); return 0; }
static void init_modem(struct work_struct *work) { gpio_direction_output(GPIO_PD(12), 0); cancel_delayed_work(&modem_work); }
.de_mode = 0, }; /* LCD Panel Device */ struct platform_device ek070tn93_device = { .name = "ek070tn93-lcd", .dev = { .platform_data = &ek070tn93_pdata, }, }; #endif #ifdef CONFIG_LCD_BYD_BM8766U #include <linux/byd_bm8766u.h> static struct platform_byd_bm8766u_data byd_bm8766u_pdata= { .gpio_lcd_disp = GPIO_PD(11), .gpio_lcd_de = 0, //GPIO_PC(9), /* chose sync mode */ .gpio_lcd_vsync = 0, //GPIO_PC(19), .gpio_lcd_hsync = 0, //GPIO_PC(18), }; /* LCD device */ struct platform_device byd_bm8766u_device = { .name = "byd_bm8766u-lcd", .dev = { .platform_data = &byd_bm8766u_pdata, }, }; #endif #ifdef CONFIG_LCD_KD50G2_40NM_A2
#ifdef CONFIG_I2C_GPIO /*CONFIG_I2C_GPIO*/ #define DEF_GPIO_I2C(NO,GPIO_I2C_SDA,GPIO_I2C_SCK) \ static struct i2c_gpio_platform_data i2c##NO##_gpio_data = { \ .sda_pin = GPIO_I2C_SDA, \ .scl_pin = GPIO_I2C_SCK, \ .udelay = 1, \ }; \ struct platform_device i2c##NO##_gpio_device = { \ .name = "i2c-gpio", \ .id = NO, \ .dev = { .platform_data = &i2c##NO##_gpio_data,}, \ }; DEF_GPIO_I2C(0,GPIO_PD(30),GPIO_PD(31)); #endif /** * sound devices, include i2s,pcm, mixer0 - 1(mixer is used for debug) and an internal codec * note, the internal codec can only access by i2s0 **/ static u64 jz_i2s_dmamask = ~(u32)0; static struct resource jz_i2s_resources[] = { [0] = { .start = AIC0_IOBASE, .end = AIC0_IOBASE + 0x1000 -1, .flags = IORESOURCE_MEM, }, [1] = { .start = IRQ_AIC0,
*/ FIXED_REGULATOR_DEF( hdmi_80_vcc5, "Vcc-5V", 5000000, GPIO_PE(15), HIGH_ENABLE, UN_AT_BOOT, 0, NULL, "vhdmi", "jz-hdmi"); FIXED_REGULATOR_DEF( hdmi_80_vbus, "OTG-Vbus", 5000000, GPIO_PB(10), LOW_ENABLE, UN_AT_BOOT, 0, NULL, "vbus", NULL); FIXED_REGULATOR_DEF( hdmi_80_vwifi, "vwifi", 3000000, GPIO_PD(8), HIGH_ENABLE, UN_AT_BOOT, 0, NULL, "vwifi", NULL); /* FIXED_REGULATOR_DEF( hdmi_80_ucharger, "ucharger", 3000000, GPIO_PD(21), HIGH_ENABLE, UN_AT_BOOT, 0, NULL, "ucharger", NULL); FIXED_REGULATOR_DEF( hdmi_80_vlcd, "LCD", 3300000, GPIO_PB(23), HIGH_ENABLE, EN_AT_BOOT, 0, NULL, "vlcd", NULL);
#ifdef CONFIG_MMC1_PIO_MODE .pio_mode = 1, #else .pio_mode = 0, #endif .private_init = iw8101_wlan_init, }; #endif #ifdef CONFIG_MMC0_JZ4780 /* * WARING: * If a GPIO is not used or undefined, it must be set -1, * or PA0 will be request. */ static struct card_gpio hlba1_tf_gpio = { .cd = {GPIO_PD(13), LOW_ENABLE}, .wp = {-1, -1}, .pwr = {-1, -1}, }; struct jzmmc_platform_data hlba1_tf_pdata = { .removal = REMOVABLE, .sdio_clk = 0, .ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34, .capacity = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_4_BIT_DATA, .pm_flags = 0, #ifdef CONFIG_MMC0_JZ4780 .max_freq = CONFIG_MMC0_MAX_FREQ, #endif .recovery_info = NULL, .gpio = &hlba1_tf_gpio,