|
@@ -307,3 +307,66 @@ static struct ep93xx_spi_chip_ops vision_spi_mmc_hw = {
|
|
|
|
|
|
/*************************************************************************
|
|
|
* SPI Bus
|
|
|
+ *************************************************************************/
|
|
|
+static struct spi_board_info vision_spi_board_info[] __initdata = {
|
|
|
+ {
|
|
|
+ .modalias = "sst25l",
|
|
|
+ .platform_data = &vision_spi_flash_data,
|
|
|
+ .controller_data = &vision_spi_flash_hw,
|
|
|
+ .max_speed_hz = 20000000,
|
|
|
+ .bus_num = 0,
|
|
|
+ .chip_select = 0,
|
|
|
+ .mode = SPI_MODE_3,
|
|
|
+ }, {
|
|
|
+ .modalias = "mmc_spi",
|
|
|
+ .platform_data = &vision_spi_mmc_data,
|
|
|
+ .controller_data = &vision_spi_mmc_hw,
|
|
|
+ .max_speed_hz = 20000000,
|
|
|
+ .bus_num = 0,
|
|
|
+ .chip_select = 1,
|
|
|
+ .mode = SPI_MODE_3,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct ep93xx_spi_info vision_spi_master __initdata = {
|
|
|
+ .num_chipselect = ARRAY_SIZE(vision_spi_board_info),
|
|
|
+};
|
|
|
+
|
|
|
+/*************************************************************************
|
|
|
+ * Machine Initialization
|
|
|
+ *************************************************************************/
|
|
|
+static void __init vision_init_machine(void)
|
|
|
+{
|
|
|
+ ep93xx_init_devices();
|
|
|
+ ep93xx_register_flash(2, EP93XX_CS6_PHYS_BASE, SZ_64M);
|
|
|
+ ep93xx_register_eth(&vision_eth_data, 1);
|
|
|
+ ep93xx_register_fb(&ep93xxfb_info);
|
|
|
+ ep93xx_register_pwm(1, 0);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Request the gpio expander's interrupt gpio line now to prevent
|
|
|
+ * the kernel from doing a WARN in gpiolib:gpio_ensure_requested().
|
|
|
+ */
|
|
|
+ if (gpio_request_one(EP93XX_GPIO_LINE_F(7), GPIOF_DIR_IN,
|
|
|
+ "pca9539:74"))
|
|
|
+ pr_warn("cannot request interrupt gpio for pca9539:74\n");
|
|
|
+
|
|
|
+ vision_i2c_info[1].irq = gpio_to_irq(EP93XX_GPIO_LINE_F(7));
|
|
|
+
|
|
|
+ ep93xx_register_i2c(&vision_i2c_gpio_data, vision_i2c_info,
|
|
|
+ ARRAY_SIZE(vision_i2c_info));
|
|
|
+ ep93xx_register_spi(&vision_spi_master, vision_spi_board_info,
|
|
|
+ ARRAY_SIZE(vision_spi_board_info));
|
|
|
+}
|
|
|
+
|
|
|
+MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307")
|
|
|
+ /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */
|
|
|
+ .atag_offset = 0x100,
|
|
|
+ .map_io = vision_map_io,
|
|
|
+ .init_irq = ep93xx_init_irq,
|
|
|
+ .handle_irq = vic_handle_irq,
|
|
|
+ .timer = &ep93xx_timer,
|
|
|
+ .init_machine = vision_init_machine,
|
|
|
+ .init_late = ep93xx_init_late,
|
|
|
+ .restart = ep93xx_restart,
|
|
|
+MACHINE_END
|