int __init ls1b_platform_init(void)
{
	ls1x_serial_setup();

#ifdef CONFIG_STMMAC_ETH
	ls1x_gmac_setup();
#endif

#ifdef CONFIG_CAN_SJA1000_PLATFORM
	ls1x_can_setup();
#endif	//#ifdef CONFIG_CAN_SJA1000_PLATFORM

#ifdef CONFIG_I2C_OCORES
	ls1x_i2c_setup();
#endif

#ifdef CONFIG_I2C_LS1X
	i2c_register_board_info(0, ls1x_i2c0_devs, ARRAY_SIZE(ls1x_i2c0_devs));
#endif

#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
	/* 轮询方式或中断方式探测card的插拔 */
	gpio_request(DETECT_GPIO, "MMC_SPI GPIO detect");
	gpio_direction_input(DETECT_GPIO);		/* 输入使能 */
#endif

#ifdef CONFIG_SPI_LS1X_SPI0
	spi_register_board_info(ls1x_spi0_devices, ARRAY_SIZE(ls1x_spi0_devices));
#endif

#ifdef CONFIG_SPI_LS1X_SPI1
	spi_register_board_info(ls1x_spi1_devices, ARRAY_SIZE(ls1x_spi1_devices));
#endif

#ifdef CONFIG_SENSORS_LS1X
	ls1x_hwmon_set_platdata(&bast_hwmon_info);
#endif

#ifdef CONFIG_BACKLIGHT_GENERIC
	gpio_request(GPIO_BACKLIGHT_CTRL, "backlight");
#endif

#if defined(CONFIG_SOC_CAMERA_OV2640) || \
	defined(CONFIG_SOC_CAMERA_OV2640_MODULE)
/*	gpio_request(OV2640_GPIO_CAMERA_PW, "ov2640_pw");
	gpio_direction_output(OV2640_GPIO_CAMERA_PW, 1);
	gpio_request(OV2640_GPIO_CAMERA_RST, "ov2640_rst");
	gpio_direction_output(OV2640_GPIO_CAMERA_RST, 1);*/
#endif

#if defined(CONFIG_MMC_LS1X)
	/* 轮询方式或中断方式探测card的插拔 */
	gpio_request(SDIO_WP_GPIO, "ls1x sdio wp");
	gpio_direction_input(SDIO_WP_GPIO);
	gpio_request(SDIO_DETECT_GPIO, "ls1x sdio detect");
	gpio_direction_input(SDIO_DETECT_GPIO);
#endif

	return platform_add_devices(ls1b_platform_devices, ARRAY_SIZE(ls1b_platform_devices));
}
Example #2
0
static int __init ls1b_platform_init(void)
{
	int err;

	ls1x_serial_setup(&ls1x_uart_device);

	err = platform_add_devices(ls1b_platform_devices,
				   ARRAY_SIZE(ls1b_platform_devices));
	return err;
}
Example #3
0
int __init ls1b_platform_init(void)
{
	u32 x __maybe_unused;

	ls1x_serial_setup();

#ifdef CONFIG_STMMAC_ETH
	ls1x_gmac_setup();
#endif

#ifdef CONFIG_I2C_LS1X
	i2c_register_board_info(0, ls1x_i2c0_devs, ARRAY_SIZE(ls1x_i2c0_devs));
#endif

#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
	/* 轮询方式或中断方式探测card的插拔 */
	gpio_request(DETECT_GPIO, "MMC_SPI GPIO detect");
	gpio_direction_input(DETECT_GPIO);		/* 输入使能 */
#endif

#ifdef CONFIG_SPI_LS1X_SPI0
	/* disable gpio40-43 */
	__raw_writel(__raw_readl(LS1X_GPIO_CFG1) & ~(SPI0_MASK << SPI0_OFFSET), 
			LS1X_GPIO_CFG1);
	x = __raw_readl(LS1X_MUX_CTRL0);
//	x |= SPI0_USE_CAN0_TX;	/* 解除CAN片选复用 */
//	x |= SPI0_USE_CAN0_RX;	/* 解除CAN片选复用 */
	__raw_writel(x, LS1X_MUX_CTRL0);
	spi_register_board_info(ls1x_spi0_devices, ARRAY_SIZE(ls1x_spi0_devices));
#endif

#ifdef CONFIG_SPI_GPIO
	spi_register_board_info(spi_gpio_devices, ARRAY_SIZE(spi_gpio_devices));
#endif

	return platform_add_devices(ls1b_platform_devices, ARRAY_SIZE(ls1b_platform_devices));
}