static int __init ssg_sdi_init(void) { // ssg_sdi2_data.card_sleep_on_suspend = true; #ifndef CONFIG_STE_WLAN int ret; #endif /* v2 has a new version of this block that need to be forced */ u32 periphid = 0x10480180; db8500_add_sdi2(&ssg_sdi2_data, periphid); codina_sdi2_init(); if ((sec_debug_settings & SEC_DBG_STM_VIA_SD_OPTS) == 0) { /* not tracing via SDI0 pins, so can enable SDI0 */ sdi0_configure(); db8500_add_sdi0(&ssg_sdi0_data, periphid); } db8500_add_sdi1(&ssg_sdi1_data, periphid); #ifndef CONFIG_STE_WLAN /* BCM */ codina_wifi_init(); #endif #ifdef CONFIG_BROADCOM_WIFI_RESERVED_MEM brcm_init_wlan_mem(); #endif #ifndef CONFIG_STE_WLAN ret = platform_device_register(&brcm_device_wlan); #endif return 0; }
static void sdi0_sdi1_configure(void) { int ret; /* v2 has a new version of this block that need to be forced */ u32 periphid = 0x10480180; ret = gpio_request(sdi0_en, "level shifter enable"); if (!ret) ret = gpio_request(sdi0_vsel, "level shifter 1v8-3v select"); if (ret) { pr_warning("unable to config sdi0 gpios for level shifter.\n"); return; } /* Select the default 2.9V and enable level shifter */ gpio_direction_output(sdi0_vsel, 0); gpio_direction_output(sdi0_en, 1); db8500_add_sdi0(&mop500_sdi0_data, periphid); sdi1_configure(); db8500_add_sdi1(&mop500_sdi1_data, periphid); }
static void sdi0_configure(struct device *parent) { int ret; ret = gpio_request(sdi0_en, "level shifter enable"); if (!ret) ret = gpio_request(sdi0_vsel, "level shifter 1v8-3v select"); if (ret) { pr_warning("unable to config sdi0 gpios for level shifter.\n"); return; } /* Select the default 2.9V and enable level shifter */ gpio_direction_output(sdi0_vsel, 0); gpio_direction_output(sdi0_en, 1); /* Add the device, force v2 to subrevision 1 */ db8500_add_sdi0(parent, &mop500_sdi0_data, U8500_SDI_V2_PERIPHID); }
static void sdi0_configure(struct device *parent) { int ret; ret = gpio_request(sdi0_en, "level shifter enable"); if (!ret) ret = gpio_request(sdi0_vsel, "level shifter 1v8-3v select"); if (ret) { pr_warning("unable to config sdi0 gpios for level shifter.\n"); return; } gpio_direction_output(sdi0_vsel, 0); gpio_direction_output(sdi0_en, 1); db8500_add_sdi0(parent, &mop500_sdi0_data, U8500_SDI_V2_PERIPHID); }
static int __init ssg_sdi_init(void) { ssg_sdi2_data.card_sleep_on_suspend = true; db8500_add_sdi2(&ssg_sdi2_data); janice_sdi2_init(); if ((sec_debug_settings & SEC_DBG_STM_VIA_SD_OPTS) == 0) { /* not tracing via SDI0 pins, so can enable SDI0 */ sdi0_configure(); db8500_add_sdi0(&ssg_sdi0_data); } db8500_add_sdi1(&ssg_sdi1_data); /* BCM */ janice_wifi_init(); #ifdef WLAN_STATIC_BUF init_wifi_mem(); #endif /* WLAN_STATIC_BUF */ return 0; }
static void sdi0_configure(struct device *parent) { /* Add the device, force v2 to subrevision 1 */ db8500_add_sdi0(parent, &mop500_sdi0_data, U8500_SDI_V2_PERIPHID); }