|
@@ -505,3 +505,79 @@ static struct at91_cf_data __initdata gsia18s_cf1_data = {
|
|
.rst_pin = AT91_PIN_PB31,
|
|
.rst_pin = AT91_PIN_PB31,
|
|
.chipselect = 5,
|
|
.chipselect = 5,
|
|
.flags = AT91_CF_TRUE_IDE,
|
|
.flags = AT91_CF_TRUE_IDE,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* Power Off by RTC */
|
|
|
|
+static void gsia18s_power_off(void)
|
|
|
|
+{
|
|
|
|
+ pr_notice("Power supply will be switched off automatically now or after 60 seconds without ArmDAS.\n");
|
|
|
|
+ at91_set_gpio_output(AT91_PIN_PA25, 1);
|
|
|
|
+ /* Spin to death... */
|
|
|
|
+ while (1)
|
|
|
|
+ ;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static int __init gsia18s_power_off_init(void)
|
|
|
|
+{
|
|
|
|
+ pm_power_off = gsia18s_power_off;
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* ---------------------------------------------------------------------------*/
|
|
|
|
+
|
|
|
|
+static void __init gsia18s_board_init(void)
|
|
|
|
+{
|
|
|
|
+ /*
|
|
|
|
+ * USART0 on ttyS1 (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI).
|
|
|
|
+ * Used for Internal Analog Modem.
|
|
|
|
+ */
|
|
|
|
+ at91_register_uart(AT91SAM9260_ID_US0, 1,
|
|
|
|
+ ATMEL_UART_CTS | ATMEL_UART_RTS |
|
|
|
|
+ ATMEL_UART_DTR | ATMEL_UART_DSR |
|
|
|
|
+ ATMEL_UART_DCD | ATMEL_UART_RI);
|
|
|
|
+ /*
|
|
|
|
+ * USART1 on ttyS2 (Rx, Tx, CTS, RTS).
|
|
|
|
+ * Used for GPS or WiFi or Data stream.
|
|
|
|
+ */
|
|
|
|
+ at91_register_uart(AT91SAM9260_ID_US1, 2,
|
|
|
|
+ ATMEL_UART_CTS | ATMEL_UART_RTS);
|
|
|
|
+ /*
|
|
|
|
+ * USART2 on ttyS3 (Rx, Tx, CTS, RTS).
|
|
|
|
+ * Used for External Modem.
|
|
|
|
+ */
|
|
|
|
+ at91_register_uart(AT91SAM9260_ID_US2, 3,
|
|
|
|
+ ATMEL_UART_CTS | ATMEL_UART_RTS);
|
|
|
|
+ /*
|
|
|
|
+ * USART3 on ttyS4 (Rx, Tx, RTS).
|
|
|
|
+ * Used for RS-485.
|
|
|
|
+ */
|
|
|
|
+ at91_register_uart(AT91SAM9260_ID_US3, 4, ATMEL_UART_RTS);
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * USART4 on ttyS5 (Rx, Tx).
|
|
|
|
+ * Used for TRX433 Radio Module.
|
|
|
|
+ */
|
|
|
|
+ at91_register_uart(AT91SAM9260_ID_US4, 5, 0);
|
|
|
|
+ stamp9g20_board_init();
|
|
|
|
+ at91_add_device_usbh(&usbh_data);
|
|
|
|
+ at91_add_device_udc(&udc_data);
|
|
|
|
+ at91_add_device_eth(&macb_data);
|
|
|
|
+ gsia18s_leds_init();
|
|
|
|
+ gsia18s_pcf_leds_init();
|
|
|
|
+ gsia18s_add_device_buttons();
|
|
|
|
+ at91_add_device_i2c(gsia18s_i2c_devices,
|
|
|
|
+ ARRAY_SIZE(gsia18s_i2c_devices));
|
|
|
|
+ at91_add_device_cf(&gsia18s_cf1_data);
|
|
|
|
+ at91_add_device_spi(gsia18s_spi_devices,
|
|
|
|
+ ARRAY_SIZE(gsia18s_spi_devices));
|
|
|
|
+ gsia18s_power_off_init();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+MACHINE_START(GSIA18S, "GS_IA18_S")
|
|
|
|
+ .timer = &at91sam926x_timer,
|
|
|
|
+ .map_io = at91_map_io,
|
|
|
|
+ .handle_irq = at91_aic_handle_irq,
|
|
|
|
+ .init_early = gsia18s_init_early,
|
|
|
|
+ .init_irq = at91_init_irq_default,
|
|
|
|
+ .init_machine = gsia18s_board_init,
|
|
|
|
+MACHINE_END
|