static void __init ek_add_device_nand(void) { if (machine_is_usb_a9260() || machine_is_usb_a9g20()) { ek_nand_data.rdy_pin = AT91_PIN_PC13; ek_nand_data.enable_pin = AT91_PIN_PC14; } /* configure chip-select 3 (NAND) */ if (machine_is_usb_a9g20()) sam9_smc_configure(3, &usb_a9g20_nand_smc_config); else sam9_smc_configure(3, &usb_a9260_nand_smc_config); at91_add_device_nand(&ek_nand_data); }
static void __init ek_add_device_udc(void) { if (machine_is_usb_a9260() || machine_is_usb_a9g20()) ek_udc_data.vbus_pin = AT91_PIN_PC5; at91_add_device_udc(&ek_udc_data); }
static void __init ek_board_init(void) { /* Serial */ at91_add_device_serial(); /* USB Host */ at91_add_device_usbh(&ek_usbh_data); /* USB Device */ ek_add_device_udc(); /* SPI */ ek_add_device_spi(); /* Ethernet */ ek_add_device_eth(); /* NAND */ ek_add_device_nand(); /* Push Buttons */ ek_add_device_buttons(); /* LEDs */ ek_add_device_leds(); if (machine_is_usb_a9g20()) { /* I2C */ at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices)); } else { /* I2C */ at91_add_device_i2c(NULL, 0); /* shutdown controller, wakeup button (5 msec low) */ at91_sys_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW | AT91_SHDW_RTTWKEN); } }
static void __init ek_add_device_leds(void) { if (machine_is_usb_a9260() || machine_is_usb_a9g20()) ek_leds[0].active_low = 0; at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds)); }
static void __init ek_add_device_spi(void) { if (machine_is_usb_a9263()) at91_add_device_spi(usb_a9263_spi_devices, ARRAY_SIZE(usb_a9263_spi_devices)); else if (machine_is_usb_a9g20()) at91_add_device_spi(usb_a9g20_spi_devices, ARRAY_SIZE(usb_a9g20_spi_devices)); }
static void __init ek_add_device_eth(void) { if (machine_is_usb_a9260() || machine_is_usb_a9g20()) ek_macb_data.phy_irq_pin = AT91_PIN_PA31; at91_add_device_eth(&ek_macb_data); }
static void __init ek_board_init(void) { at91_add_device_serial(); at91_add_device_usbh(&ek_usbh_data); ek_add_device_udc(); ek_add_device_spi(); ek_add_device_eth(); ek_add_device_nand(); ek_add_device_buttons(); ek_add_device_leds(); if (machine_is_usb_a9g20()) { at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices)); } else { at91_add_device_i2c(NULL, 0); at91_shdwc_write(AT91_SHDW_MR, AT91_SHDW_CPTWK0_(10) | AT91_SHDW_WKMODE0_LOW | AT91_SHDW_RTTWKEN); } }
static int usb_a9260_console_init(void) { struct device_d *dev; if (machine_is_usb_a9260()) { barebox_set_model("Calao USB-A9260"); barebox_set_hostname("usb-a9260"); } else if (machine_is_usb_a9g20()) { barebox_set_model("Calao USB-A9G20"); barebox_set_hostname("usb-a9g20"); } else { barebox_set_model("Calao USB-A9263"); barebox_set_hostname("usb-a9263"); } at91_register_uart(0, 0); if (IS_ENABLED(CONFIG_CALAO_DAB_MMX)) { at91_register_uart(2, 0); dev = at91_register_uart(4, 0); dev_set_param(dev, "active", ""); } return 0; }
static void usb_a9260_set_board_type(void) { if (machine_is_usb_a9g20()) armlinux_set_architecture(MACH_TYPE_USB_A9G20); else if (machine_is_usb_a9263()) armlinux_set_architecture(MACH_TYPE_USB_A9263); else armlinux_set_architecture(MACH_TYPE_USB_A9260); }
static void usb_a9260_add_spi(void) { if (machine_is_usb_a9263()) { spi_register_board_info(usb_a9263_spi_devices, ARRAY_SIZE(usb_a9263_spi_devices)); at91_add_device_spi(0, &spi_a9263_pdata); } else if (machine_is_usb_a9g20() && at91sam9260_is_low_power_sdram()) { spi_register_board_info(usb_a9g20_spi_devices, ARRAY_SIZE(usb_a9g20_spi_devices)); at91_add_device_spi(1, &spi_a9g20_pdata); } }
static void usb_a9260_add_device_nand(void) { /* configure chip-select 3 (NAND) */ if (machine_is_usb_a9g20()) sam9_smc_configure(0, 3, &usb_a9g20_nand_smc_config); else sam9_smc_configure(0, 3, &usb_a9260_nand_smc_config); if (machine_is_usb_a9263()) { nand_pdata.rdy_pin = AT91_PIN_PA22; nand_pdata.enable_pin = AT91_PIN_PD15; } at91_add_device_nand(&nand_pdata); }