static void __init raumfeld_lcd_init(void) { int ret; set_pxa_fb_info(&raumfeld_sharp_lcd_info); /* Earlier devices had the backlight regulator controlled * via PWM, later versions use another controller for that */ if ((system_rev & 0xff) < 2) { mfp_cfg_t raumfeld_pwm_pin_config = GPIO17_PWM0_OUT; pxa3xx_mfp_config(&raumfeld_pwm_pin_config, 1); platform_device_register(&raumfeld_pwm_backlight_device); } else platform_device_register(&raumfeld_lt3593_device); ret = gpio_request(GPIO_TFT_VA_EN, "display VA enable"); if (ret < 0) pr_warning("Unable to request GPIO_TFT_VA_EN\n"); else gpio_direction_output(GPIO_TFT_VA_EN, 1); ret = gpio_request(GPIO_DISPLAY_ENABLE, "display enable"); if (ret < 0) pr_warning("Unable to request GPIO_DISPLAY_ENABLE\n"); else gpio_direction_output(GPIO_DISPLAY_ENABLE, 1); platform_device_register(&pxa3xx_device_gcu); }
static void __init raumfeld_lcd_init(void) { int ret; ret = gpio_request(GPIO_TFT_VA_EN, "display VA enable"); if (ret < 0) pr_warning("Unable to request GPIO_TFT_VA_EN\n"); else gpio_direction_output(GPIO_TFT_VA_EN, 1); msleep(100); ret = gpio_request(GPIO_DISPLAY_ENABLE, "display enable"); if (ret < 0) pr_warning("Unable to request GPIO_DISPLAY_ENABLE\n"); else gpio_direction_output(GPIO_DISPLAY_ENABLE, 1); /* Hardware revision 2 has the backlight regulator controlled * by an LT3593, earlier and later devices use PWM for that. */ if ((system_rev & 0xff) == 2) { platform_device_register(&raumfeld_lt3593_device); } else { mfp_cfg_t raumfeld_pwm_pin_config = GPIO17_PWM0_OUT; pxa3xx_mfp_config(&raumfeld_pwm_pin_config, 1); platform_device_register(&raumfeld_pwm_backlight_device); } pxa_set_fb_info(NULL, &raumfeld_sharp_lcd_info); platform_device_register(&pxa3xx_device_gcu); }
static int serial_xr20m_probe(struct platform_device *dev) { int ret; xr20m_reset(); xr20m_ssp1_init(); ret = xr20m_detect(); if (ret>=0) { xr20m_uart_init(); xr20m_ier = xr20m_read(XR20M_IER); ret = uart_add_one_port(&serial_xr20m, &serial_xr20m_ports[dev->id]); serial_xr20m_ports[dev->id].dev = &dev->dev; platform_set_drvdata(dev, &serial_xr20m_ports[dev->id]); xr20m_dbg("ret[%d], id[%d]\n", ret, dev->id); /* setup int */ pxa3xx_mfp_config(xr20m_int_pins, ARRAY_SIZE(xr20m_int_pins)); pxa3xx_gpio_set_direction(XR20M_INT, GPIO_DIR_IN); ret = sysfs_create_group(&dev->dev.kobj, &xr20m_attr_group); init_timer(&xr20m_timer); xr20m_timer.function = xr20m_timer_handler; xr20m_sleep_enable(1); } printk("XR20m spi-to-uart for gsm2 serial driver registered %s \n", ret<0?"fail":"succ"); return ret; }
static int mmc1_wakeup(pm_wakeup_src_t src, int enable) { unsigned int ret = 0; mfp_cfg_t mfp_c; if (enable) { if (src.bits.mmc1_cd) { mfp_c = GPIO47_GPIO | MFP_LPM_EDGE_BOTH; pxa3xx_mfp_config(&mfp_c, 1); ret |= PXA95x_PM_WE_GENERIC(13); } } else { mfp_c = GPIO47_GPIO | MFP_LPM_EDGE_NONE; pxa3xx_mfp_config(&mfp_c, 1); } return ret; }
static void __init evb3_init(void) { /* initialize MFP configurations */ pxa3xx_mfp_config(ARRAY_AND_SIZE(evb3_mfp_cfg)); pxa_set_ffuart_info(NULL); evb3_init_i2c(); }
static inline void __init colibri_pxa310_init_ac97(void) { /* no AC97 codec on Colibri PXA300 */ if (!cpu_is_pxa310()) return; pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa310_ac97_pin_config)); pxa_set_ac97_info(NULL); }
static void __init evb3_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(evb3_mfp_cfg)); pxa_set_ffuart_info(NULL); evb3_init_i2c(); }
static int tsi_wakeup(pm_wakeup_src_t src, int enable) { unsigned int ret = 0; mfp_cfg_t m; if (enable) { if (src.bits.tsi) { m = PMIC_INT_GPIO83 | MFP_LPM_FLOAT | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(3); } } else { if (src.bits.tsi) { m = PMIC_INT_GPIO83 | MFP_LPM_FLOAT | MFP_LPM_EDGE_NONE; pxa3xx_mfp_config(&m, 1); } } return ret; }
void __init mxm_8x10_barebones_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(mfp_cfg)); mxm_8x10_uarts_init(); mxm_8x10_nand_init(); mxm_8x10_i2c_init(); mxm_8x10_ethernet_init(); }
static void __init tavorevb_init(void) { /* initialize MFP configurations */ pxa3xx_mfp_config(ARRAY_AND_SIZE(tavorevb_mfp_cfg)); platform_device_register(&smc91x_device); tavorevb_init_lcd(); tavorevb_init_keypad(); }
static void __init saar_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(saar_mfp_cfg)); platform_device_register(&smc91x_device); saar_init_i2c(); saar_init_lcd(); }
static void __init __maybe_unused raumfeld_connector_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_connector_pin_config)); spi_register_board_info(ARRAY_AND_SIZE(connector_spi_devices)); i2c_register_board_info(0, &raumfeld_connector_i2c_board_info, 1); platform_device_register(&smc91x_device); raumfeld_audio_init(); raumfeld_common_init(); }
static void __init raumfeld_speaker_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_speaker_pin_config)); spi_register_board_info(ARRAY_AND_SIZE(speaker_spi_devices)); i2c_register_board_info(0, &raumfeld_connector_i2c_board_info, 1); platform_device_register(&smc91x_device); platform_device_register(&rotary_encoder_device); raumfeld_audio_init(); raumfeld_common_init(); }
void __init colibri_pxa300_init(void) { colibri_pxa300_init_eth(); colibri_pxa3xx_init_nand(); colibri_pxa300_init_lcd(); colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO39_GPIO)); colibri_pxa310_init_ac97(); /* Evalboard init */ pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_evalboard_pin_config)); colibri_evalboard_init(); }
static void __init cm_x300_init(void) { /* board-processor specific GPIO initialization */ pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_mfp_cfg)); cm_x300_init_dm9000(); cm_x300_init_lcd(); cm_x300_init_ohci(); cm_x300_init_mmc(); cm_x300_init_nand(); cm_x300_init_leds(); cm_x300_init_i2c(); }
static void __init tavorevb_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(tavorevb_mfp_cfg)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_device_register(&smc91x_device); tavorevb_init_lcd(); tavorevb_init_keypad(); }
static void __init saar_init(void) { /* initialize MFP configurations */ pxa3xx_mfp_config(ARRAY_AND_SIZE(saar_mfp_cfg)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_device_register(&smc91x_device); saar_init_onenand(); saar_init_i2c(); saar_init_lcd(); }
static void __init __maybe_unused raumfeld_speaker_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_speaker_pin_config)); spi_register_board_info(ARRAY_AND_SIZE(speaker_spi_devices)); i2c_register_board_info(0, &raumfeld_connector_i2c_board_info, 1); platform_device_register(&smc91x_device); gpiod_add_lookup_table(&raumfeld_rotary_gpios_table); device_add_property_set(&rotary_encoder_device.dev, &raumfeld_rotary_property_set); platform_device_register(&rotary_encoder_device); raumfeld_audio_init(); raumfeld_common_init(); }
static void __init littleton_init(void) { /* initialize MFP configurations */ pxa3xx_mfp_config(ARRAY_AND_SIZE(littleton_mfp_cfg)); /* * Note: we depend bootloader set the correct * value to MSC register for SMC91x. */ platform_device_register(&smc91x_device); littleton_init_spi(); littleton_init_i2c(); littleton_init_lcd(); littleton_init_keypad(); littleton_init_nand(); }
static void __init littleton_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(littleton_mfp_cfg)); pxa_set_ffuart_info(NULL); pxa_set_btuart_info(NULL); pxa_set_stuart_info(NULL); platform_device_register(&smc91x_device); littleton_init_spi(); littleton_init_i2c(); littleton_init_mmc(); littleton_init_lcd(); littleton_init_keypad(); littleton_init_nand(); }
static void __init raumfeld_controller_init(void) { int ret; pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_controller_pin_config)); platform_device_register(&rotary_encoder_device); spi_register_board_info(ARRAY_AND_SIZE(controller_spi_devices)); i2c_register_board_info(0, &raumfeld_controller_i2c_board_info, 1); ret = gpio_request(GPIO_SHUTDOWN_BATT, "battery shutdown"); if (ret < 0) pr_warning("Unable to request GPIO_SHUTDOWN_BATT\n"); else gpio_direction_output(GPIO_SHUTDOWN_BATT, 0); raumfeld_common_init(); raumfeld_power_init(); raumfeld_lcd_init(); raumfeld_w1_init(); }
static int uart_wakeup(pm_wakeup_src_t src, int enable) { unsigned int ret = 0; mfp_cfg_t m; if (enable) { if (src.bits.uart1) { if (is_uart_gpio()) { m = MFP_CFG(GPIO53, AF0) | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(13); } else { m = GPIO53_UART1_RXD | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(9); } } if (src.bits.uart2) { if (is_uart_gpio()) { m = MFP_CFG(GPIO45, AF0) | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); ret |= PXA95x_PM_WE_GENERIC(13); } else { m = GPIO45_UART3_RXD | MFP_LPM_EDGE_FALL; pxa3xx_mfp_config(&m, 1); /* note: on pxa930, uart2 use this bit */ ret |= PXA95x_PM_WE_GENERIC(2); } } } else { if (src.bits.uart1) { m = GPIO53_UART1_RXD | MFP_LPM_EDGE_NONE; pxa3xx_mfp_config(&m, 1); } if (src.bits.uart2) { m = GPIO45_UART3_RXD | MFP_LPM_EDGE_NONE; pxa3xx_mfp_config(&m, 1); } } return ret; }
static void __init colibri_pxa320_init_eth(void) { colibri_pxa3xx_init_eth(&colibri_asix_platdata); pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_eth_pin_config)); platform_device_register(&asix_device); }
void __init colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin) { pxa3xx_mfp_config(pins, len); mmc_detect_pin = detect_pin; pxa_set_mci_info(&colibri_pxa3xx_mci_platform_data); }
void __init colibri_pxa320_init_ohci(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_usb_pin_config)); pxa_set_ohci_info(&colibri_pxa320_ohci_info); }
static void __init icontrol_can_init(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(mfp_can_cfg)); platform_add_devices(ARRAY_AND_SIZE(icontrol_spi_devices)); spi_register_board_info(ARRAY_AND_SIZE(mcp251x_board_info)); }
static void __init colibri_pxa320_init_lcd(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_lcd_pin_config)); }
static inline void __init colibri_pxa320_init_ac97(void) { pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_ac97_pin_config)); pxa_set_ac97_info(NULL); }