void __init exynos5_universal5420_sensor_init(void)
{
	int ret = 0;

	pr_info("%s, is called\n", __func__);

#ifdef CONFIG_SENSORS_SSP
	ret = initialize_ssp_gpio();
	if (ret < 0)
		pr_err("%s, initialize_ssp_gpio fail(err=%d)\n", __func__, ret);
#endif

#if defined(CONFIG_V1A) || defined(CONFIG_N1A)
	s3c_i2c3_set_platdata(NULL);
	ret = i2c_register_board_info(3, i2c_devs3, ARRAY_SIZE(i2c_devs3));
	if (ret < 0) {
		pr_err("%s, i2c3 adding i2c fail(err=%d)\n", __func__, ret);
	}

	ret = platform_device_register(&s3c_device_i2c3);
	if (ret < 0)
		pr_err("%s, sensor platform device register failed (err=%d)\n",
			__func__, ret);

#endif

#if defined(CONFIG_V1A_3G) || defined(CONFIG_N1A_3G)
	exynos5_hs_i2c0_set_platdata(&hs_i2c0_data);
	ret = i2c_register_board_info(4, i2c_devs4, ARRAY_SIZE(i2c_devs4));
	if (ret < 0) {
		pr_err("%s, i2c4 adding i2c fail(err=%d)\n", __func__, ret);
	}

	ret = platform_device_register(&exynos5_device_hs_i2c0);
	if (ret < 0)
		pr_err("%s, grip platform device register failed (err=%d)\n",
			__func__, ret);
#endif


#ifdef CONFIG_SENSORS_SSP_STM
	pr_info("%s, SSP_SPI_SETUP\n", __func__);
	if (!exynos_spi_cfg_cs(spi0_csi[0].line, 0)) {
		pr_info("%s, spi0_set_platdata ...\n", __func__);
		ssp_spi0_set_platdata(&s3c64xx_spi0_pdata,
			EXYNOS_SPI_SRCCLK_SCLK, ARRAY_SIZE(spi0_csi));

		spi_register_board_info(spi0_board_info,
			ARRAY_SIZE(spi0_board_info));
	} else {
		pr_err("%s, Error requesting gpio for SPI-CH%d CS",
			__func__, spi0_board_info->bus_num);
	}

	ret = platform_device_register(&s3c64xx_device_spi0);
	if (ret < 0)
		pr_err("%s, Failed to register spi0 plaform devices(err=%d)\n",
			__func__, ret);
#endif

#ifdef CONFIG_SENSORS_VFS61XX
	pr_info("%s: SENSORS_VFS61XX init\n", __func__);
	vfs61xx_setup_gpio();
	s3c64xx_spi1_pdata.dma_mode = PIO_MODE;
	if (system_rev > 4)
		vfs61xx_pdata.ldocontrol = 1;

	if (!exynos_spi_cfg_cs(spi1_csi[0].line, 1)) {
		pr_info("%s: spi1_set_platdata ...\n", __func__);
		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 SPI-CH%d CS",
			__func__, spi1_board_info->bus_num);
	}
	platform_device_register(&s3c64xx_device_spi1);
#endif
}
Ejemplo n.º 2
0
static int __init midas_sensor_init(void)
{
    int ret = 0;

    /* Gyro & Accelerometer Sensor */
#if defined(CONFIG_SENSORS_LSM330DLC)
    ret = accel_gpio_init();
    if (ret < 0) {
        pr_err("%s, accel_gpio_init fail(err=%d)\n", __func__, ret);
        return ret;
    }
    ret = gyro_gpio_init();
    if (ret < 0) {
        pr_err("%s, gyro_gpio_init(err=%d)\n", __func__, ret);
        return ret;
    }
#elif defined(CONFIG_SENSORS_K3DH)
    ret = accel_gpio_init();
    if (ret < 0) {
        pr_err("%s, accel_gpio_init fail(err=%d)\n", __func__, ret);
        return ret;
    }
#elif defined(CONFIG_SENSORS_SSP)
    initialize_ssp_gpio();
#endif
    ret = i2c_add_devices(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
    if (ret < 0) {
        pr_err("%s, i2c1 adding i2c fail(err=%d)\n", __func__, ret);
        return ret;
    }

    /* Optical Sensor */
#if defined(CONFIG_SENSORS_GP2A) || defined(CONFIG_SENSORS_CM36651) || \
	defined(CONFIG_SENSORS_CM3663)
    ret = optical_gpio_init();
    if (ret) {
        pr_err("%s, optical_gpio_init(err=%d)\n", __func__, ret);
        return ret;
    }
    ret = i2c_add_devices(9, i2c_devs9_emul, ARRAY_SIZE(i2c_devs9_emul));
    if (ret < 0) {
        pr_err("%s, i2c9 adding i2c fail(err=%d)\n", __func__, ret);
        return ret;
    }
#elif defined(CONFIG_SENSORS_BH1721) || defined(CONFIG_SENSORS_AL3201)
    ret = i2c_add_devices(9, i2c_devs9_emul, ARRAY_SIZE(i2c_devs9_emul));
    if (ret < 0) {
        pr_err("%s, i2c9 adding i2c fail(err=%d)\n", __func__, ret);
        return ret;
    }
#endif

#if defined(CONFIG_SENSORS_GP2A)
    ret = platform_device_register(&opt_gp2a);
    if (ret < 0) {
        pr_err("%s, failed to register opt_gp2a(err=%d)\n",
               __func__, ret);
        return ret;
    }
#endif

    /* Magnetic Sensor */
#ifdef CONFIG_SENSORS_AK8975C
    ret = ak8975c_gpio_init();
    if (ret < 0) {
        pr_err("%s, ak8975c_gpio_init fail(err=%d)\n", __func__, ret);
        return ret;
    }
    ret = i2c_add_devices(10, i2c_devs10_emul, ARRAY_SIZE(i2c_devs10_emul));
    if (ret < 0) {
        pr_err("%s, i2c10 adding i2c fail(err=%d)\n", __func__, ret);
        return ret;
    }
#endif

    /* Pressure Sensor */
#ifdef CONFIG_SENSORS_LPS331
    ret = lps331_gpio_init();
    if (ret < 0) {
        pr_err("%s, ak8975c_gpio_init fail(err=%d)\n", __func__, ret);
        return ret;
    }
    ret = i2c_add_devices(11, i2c_devs11_emul, ARRAY_SIZE(i2c_devs11_emul));
    if (ret < 0) {
        pr_err("%s, i2c1 adding i2c fail(err=%d)\n", __func__, ret);
        return ret;
    }
#endif
    return ret;
}