static void __init cm_x300_init_spi(void) { spi_register_board_info(cm_x300_spi_devices, ARRAY_SIZE(cm_x300_spi_devices)); platform_device_register(&cm_x300_spi_gpio); }
static void am33xx_init_pcm(void) { platform_device_register(&am33xx_pcm_device); }
static inline void omap_hdq_init(void) { (void) platform_device_register(&omap_hdq_dev); }
void __init dove_sdio1_init(void) { platform_device_register(&dove_sdio1); }
void __init exynos5_universal5410_media_init(void) { /* GPIO init check point */ gpio_init_done(); #if defined (CONFIG_CSI_D) || defined (CONFIG_S5K6B2_CSI_D) s3c_i2c1_set_platdata(NULL); #endif #if defined (CONFIG_CSI_E) || defined (CONFIG_S5K6B2_CSI_E) s3c_i2c1_set_platdata(NULL); #endif #ifdef CONFIG_VIDEO_EXYNOS_MFC s5p_mfc_set_platdata(&universal5410_mfc_pd); dev_set_name(&s5p_device_mfc.dev, "s3c-mfc"); clk_add_alias("mfc", "s5p-mfc-v6", "mfc", &s5p_device_mfc.dev); s5p_mfc_setname(&s5p_device_mfc, "s5p-mfc-v6"); #endif platform_add_devices(universal5410_media_devices, ARRAY_SIZE(universal5410_media_devices)); #ifdef CONFIG_VIDEO_S5K6B2 #if defined(CONFIG_S5K6B2_CSI_C) __set_mipi_csi_config(&s5p_mipi_csis0_default_data, s5k6b2.csi_data_align); #elif defined(CONFIG_S5K6B2_CSI_D) __set_mipi_csi_config(&s5p_mipi_csis1_default_data, s5k6b2.csi_data_align); #elif defined(CONFIG_S5K6B2_CSI_E) __set_mipi_csi_config(&s5p_mipi_csis2_default_data, s5k6b2.csi_data_align); #endif #endif #ifdef CONFIG_VIDEO_EXYNOS_MIPI_CSIS s3c_set_platdata(&s5p_mipi_csis0_default_data, sizeof(s5p_mipi_csis0_default_data), &s5p_device_mipi_csis0); s3c_set_platdata(&s5p_mipi_csis1_default_data, sizeof(s5p_mipi_csis1_default_data), &s5p_device_mipi_csis1); s3c_set_platdata(&s5p_mipi_csis2_default_data, sizeof(s5p_mipi_csis2_default_data), &s5p_device_mipi_csis2); #endif #ifdef CONFIG_VIDEO_EXYNOS_FIMC_LITE universal5410_camera_gpio_cfg(); universal5410_set_camera_platdata(); s3c_set_platdata(&exynos_flite0_default_data, sizeof(exynos_flite0_default_data), &exynos_device_flite0); s3c_set_platdata(&exynos_flite1_default_data, sizeof(exynos_flite1_default_data), &exynos_device_flite1); s3c_set_platdata(&exynos_flite2_default_data, sizeof(exynos_flite2_default_data), &exynos_device_flite2); #endif #if defined(CONFIG_VIDEO_EXYNOS_TV) dev_set_name(&s5p_device_hdmi.dev, "exynos5-hdmi"); mxr_platdata.ip_ver = IP_VER_TV_5A_1; hdmi_platdata.ip_ver = IP_VER_TV_5A_1; s5p_tv_setup(); /* Below should be enabled after power domain is available */ #if 0 s5p_device_hdmi.dev.parent = &exynos5_device_pd[PD_DISP1].dev; s5p_device_mixer.dev.parent = &exynos5_device_pd[PD_DISP1].dev; #endif #ifdef CONFIG_VIDEO_EXYNOS_HDMI_CEC s5p_hdmi_cec_set_platdata(&hdmi_cec_data); #endif s3c_set_platdata(&mxr_platdata, sizeof(mxr_platdata), &s5p_device_mixer); s5p_hdmi_set_platdata(&hdmi_platdata); /* * exynos5_hs_i2c2_set_platdata(NULL); * i2c_register_board_info(6, hs_i2c_devs2, ARRAY_SIZE(hs_i2c_devs2)); */ #endif #ifdef CONFIG_VIDEO_EXYNOS_GSCALER exynos5_gsc_set_ip_ver(IP_VER_GSC_5A); s3c_set_platdata(&exynos_gsc0_default_data, sizeof(exynos_gsc0_default_data), &exynos5_device_gsc0); s3c_set_platdata(&exynos_gsc1_default_data, sizeof(exynos_gsc1_default_data), &exynos5_device_gsc1); s3c_set_platdata(&exynos_gsc2_default_data, sizeof(exynos_gsc2_default_data), &exynos5_device_gsc2); s3c_set_platdata(&exynos_gsc3_default_data, sizeof(exynos_gsc3_default_data), &exynos5_device_gsc3); #endif #ifdef CONFIG_VIDEO_EXYNOS5_FIMC_IS dev_set_name(&exynos5_device_fimc_is.dev, "s5p-mipi-csis.0"); clk_add_alias("gscl_wrap0", FIMC_IS_MODULE_NAME, "gscl_wrap0", &exynos5_device_fimc_is.dev); dev_set_name(&exynos5_device_fimc_is.dev, "s5p-mipi-csis.1"); clk_add_alias("gscl_wrap1", FIMC_IS_MODULE_NAME, "gscl_wrap1", &exynos5_device_fimc_is.dev); dev_set_name(&exynos5_device_fimc_is.dev, "s5p-mipi-csis.2"); clk_add_alias("gscl_wrap2", FIMC_IS_MODULE_NAME, "gscl_wrap2", &exynos5_device_fimc_is.dev); dev_set_name(&exynos5_device_fimc_is.dev, FIMC_IS_MODULE_NAME); #if defined(CONFIG_MACH_V1) exynos5_fimc_is_data.gpio_info = &gpio_camera_v1; #else exynos5_fimc_is_data.gpio_info = &gpio_universal5410; #endif exynos5_fimc_is_set_platdata(&exynos5_fimc_is_data); if (!exynos_spi_cfg_cs(spi3_csi[0].line, 3)) { s3c64xx_spi3_set_platdata(&s3c64xx_spi3_pdata, EXYNOS_SPI_SRCCLK_SCLK, ARRAY_SIZE(spi3_csi)); spi_register_board_info(spi3_board_info, ARRAY_SIZE(spi3_board_info)); } else { pr_err("%s: Error requesting gpio for SPI-CH1 CS\n", __func__); } #endif #ifdef CONFIG_VIDEO_EXYNOS_FIMG2D s5p_fimg2d_set_platdata(&fimg2d_data); #endif #ifdef CONFIG_VIDEO_EXYNOS_JPEG exynos5_jpeg_fimp_setup_clock(&s5p_device_jpeg.dev, 166500000); #endif #ifdef CONFIG_VIDEO_EXYNOS_JPEG_HX exynos5_jpeg_hx_setup_clock(&exynos5_device_jpeg_hx.dev, 300000000); #endif #if defined(CONFIG_TDMB) || defined(CONFIG_TDMB_MODULE) #if defined(CONFIG_TDMB_SPI) if (!exynos_spi_cfg_cs(spi1_csi[0].line, 1)) { s3c64xx_spi1_set_platdata(&s3c64xx_spi1_pdata, EXYNOS_SPI_SRCCLK_SCLK, ARRAY_SIZE(spi1_csi)); spi_register_board_info(spi1_board_info, ARRAY_SIZE(spi1_board_info)); } else { pr_err("%s: Error requesting gpio for TDMB_SPI CS\n", __func__); } #endif tdmb_dev_init(); #endif #ifdef CONFIG_ISDBTMM tmm_dev_init(); #endif #ifdef CONFIG_LEDS_KTD267 platform_device_register(&s3c_device_ktd267_led); #endif }
static void __init simone_register_audio(void) { ep93xx_register_ac97(); platform_device_register(&simone_audio_device); }
static int __init mxc_init_extuart(void) { return platform_device_register(&serial_device); }
static void __init cmx255_init_nand(void) { platform_device_register(&cmx255_nand); }
static void __init nas100d_init(void) { uint8_t __iomem *f; int i; ixp4xx_sys_init(); /* gpio 14 and 15 are _not_ clocks */ *IXP4XX_GPIO_GPCLKR = 0; nas100d_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); nas100d_flash_resource.end = IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; i2c_register_board_info(0, nas100d_i2c_board_info, ARRAY_SIZE(nas100d_i2c_board_info)); /* * This is only useful on a modified machine, but it is valuable * to have it first in order to see debug messages, and so that * it does *not* get removed if platform_add_devices fails! */ (void)platform_device_register(&nas100d_uart); platform_add_devices(nas100d_devices, ARRAY_SIZE(nas100d_devices)); pm_power_off = nas100d_power_off; if (request_irq(gpio_to_irq(NAS100D_RB_GPIO), &nas100d_reset_handler, IRQF_DISABLED | IRQF_TRIGGER_LOW, "NAS100D reset button", NULL) < 0) { printk(KERN_DEBUG "Reset Button IRQ %d not available\n", gpio_to_irq(NAS100D_RB_GPIO)); } /* The power button on the Iomega NAS100d is on GPIO 14, but * it cannot handle interrupts on that GPIO line. So we'll * have to poll it with a kernel timer. */ /* Make sure that the power button GPIO is set up as an input */ gpio_line_config(NAS100D_PB_GPIO, IXP4XX_GPIO_IN); /* Set the initial value for the power button IRQ handler */ power_button_countdown = PBUTTON_HOLDDOWN_COUNT; mod_timer(&nas100d_power_timer, jiffies + msecs_to_jiffies(500)); /* * Map in a portion of the flash and read the MAC address. * Since it is stored in BE in the flash itself, we need to * byteswap it if we're in LE mode. */ f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x1000000); if (f) { for (i = 0; i < 6; i++) #ifdef __ARMEB__ nas100d_plat_eth[0].hwaddr[i] = readb(f + 0xFC0FD8 + i); #else nas100d_plat_eth[0].hwaddr[i] = readb(f + 0xFC0FD8 + (i^3)); #endif iounmap(f); } printk(KERN_INFO "NAS100D: Using MAC address %pM for port 0\n", nas100d_plat_eth[0].hwaddr); }
static void mxc_init_ipu(void) { platform_device_register(&mxc_ipu_device); }
static inline void mxc_init_mu(void) { (void)platform_device_register(&mxc_mu_device); }
static void mxc_init_wdt(void) { (void)platform_device_register(&mxc_wdt_device); }
/** * @brief touchpad driver init */ static int __init gp_touchpad_drv_init(void) { printk("gp_touchpad_drv_init\n"); platform_device_register(&gp_touchpad_device); return platform_driver_register(&gp_touchpad_driver); }
static void __init cm_x300_init_rtc(void) { platform_device_register(&cm_x300_rtc_device); }
void __init dm365_init_ks(struct davinci_ks_platform_data *pdata) { dm365_ks_device.dev.platform_data = pdata; platform_device_register(&dm365_ks_device); }
void __init mxm_8x10_ac97_init(void) { platform_device_register(&mxm_8x10_ac97_device); }
void __init dm365_init_rtc(void) { davinci_cfg_reg(DM365_INT_PRTCSS); platform_device_register(&dm365_rtc_device); }
static void __init mxm_8x10_ethernet_init(void) { platform_device_register(&dm9k_device); }
/* =====================rsz_init=========================== function to register resizer character driver */ static __init int rsz_init(void) { int result; /* Register the driver in the kernel */ result = alloc_chrdev_region(&dev, 0, 1, DRIVER_NAME); if (result < 0) { printk(KERN_ERR "DaVinciresizer: could not register character device"); return -ENODEV; } /* Initialize of character device */ cdev_init(&c_dev, &rsz_fops); c_dev.owner = THIS_MODULE; c_dev.ops = &rsz_fops; /* addding character device */ result = cdev_add(&c_dev, dev, 1); if (result) { printk(KERN_ERR "DaVinciresizer:Error %d adding" " Davinciresizer ..error no:", result); unregister_chrdev_region(dev, 1); return result; } /* registeration of character device */ register_chrdev(MAJOR(dev), DRIVER_NAME, &rsz_fops); /* register driver as a platform driver */ if (driver_register(&resizer_driver) != 0) { unregister_chrdev_region(dev, 1); cdev_del(&c_dev); return -EINVAL; } /* Register the drive as a platform device */ if (platform_device_register(&resizer_device) != 0) { driver_unregister(&resizer_driver); unregister_chrdev_region(dev, 1); unregister_chrdev(MAJOR(dev), DRIVER_NAME); cdev_del(&c_dev); return -EINVAL; } rsz_class = class_create(THIS_MODULE, "davinci_resizer"); if (!rsz_class) { platform_device_unregister(&resizer_device); cdev_del(&c_dev); unregister_chrdev(MAJOR(dev), DRIVER_NAME); return -EIO; } device_create(rsz_class, NULL, dev, NULL, "davinci_resizer"); rsz_dev.users = 0; mutex_init(&rsz_dev.lock); /* Initialize the serializer */ imp_init_serializer(); imp_hw_if = imp_get_hw_if(); printk(KERN_NOTICE "davinci_resizer initialized\n"); return 0; } /* End of function resizer_init */
static void __init rx51_init_lirc(void) { platform_device_register(&rx51_lirc_device); }
static int __init platform_init(void) { platform_device_register(&smc91x_device); return 0; }
static void __init rx51_init_twl4030_hwmon(void) { platform_device_register(&madc_hwmon); }
static void __init ek_add_device_video(void) { platform_device_register(&ek_s1dfb_device); }
static void __init rx51_add_gpio_keys(void) { platform_device_register(&rx51_gpio_keys_device); }
void __init am335x_register_mcasp1(struct snd_platform_data *pdata) { am335x_mcasp1_device.dev.platform_data = pdata; platform_device_register(&am335x_mcasp1_device); }
static int __init led_init(void) { platform_device_register(&pled_device); return platform_device_register(&fled_device); }
int omap3_init_camera(struct isp_platform_data *pdata) { omap3isp_device.dev.platform_data = pdata; return platform_device_register(&omap3isp_device); }
static void __init tavorevb_init_lcd(void) { platform_device_register(&tavorevb_backlight_devices[0]); platform_device_register(&tavorevb_backlight_devices[1]); pxa_set_fb_info(NULL, &tavorevb_lcd_info); }
static void omap_init_vout(void) { if (platform_device_register(&omap_vout_device) < 0) printk(KERN_ERR "Unable to register OMAP-VOUT device\n"); }
static void cm_x300_init_bl(void) { platform_device_register(&cm_x300_backlight_device); }