void __init at91_add_device_i2c(void) { /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA7, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PA7, 1); at91_set_A_periph(AT91_PIN_PA8, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PA8, 1); platform_device_register(&at91sam9261_twi_device); }
void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { at91_set_GPIO_periph(AT91_PIN_PB4, 1); /* TWD (SDA) */ at91_set_multi_drive(AT91_PIN_PB4, 1); at91_set_GPIO_periph(AT91_PIN_PB5, 1); /* TWCK (SCL) */ at91_set_multi_drive(AT91_PIN_PB5, 1); i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91sam9263_twi_device); }
void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { /* */ at91_set_A_periph(AT91_PIN_PA23, 0); /* */ at91_set_multi_drive(AT91_PIN_PA23, 1); at91_set_A_periph(AT91_PIN_PA24, 0); /* */ at91_set_multi_drive(AT91_PIN_PA24, 1); i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91sam9rl_twi_device); }
void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA25, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PA25, 1); at91_set_A_periph(AT91_PIN_PA26, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PA26, 1); i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91rm9200_twi_device); }
void at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices) { struct i2c_gpio_platform_data *pdata = &pdata_i2c; i2c_register_board_info(0, devices, nr_devices); at91_set_GPIO_periph(pdata->sda_pin, 1); /* TWD (SDA) */ at91_set_multi_drive(pdata->sda_pin, 1); at91_set_GPIO_periph(pdata->scl_pin, 1); /* TWCK (SCL) */ at91_set_multi_drive(pdata->scl_pin, 1); add_generic_device_res("i2c-gpio", 0, NULL, 0, pdata); }
static void __init homematic_board_init(void) { /* Serial */ at91_add_device_serial(); /* Ethernet */ at91_add_device_eth(&homematic_eth_data); /* USB Host */ at91_add_device_usbh(&homematic_usbh_data); /* USB Device */ at91_add_device_udc(&homematic_udc_data); at91_set_multi_drive(homematic_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */ /* I2C */ at91_add_device_i2c(NULL, 0); /* SPI */ at91_add_device_spi(homematic_spi_devices, ARRAY_SIZE(homematic_spi_devices)); #ifdef CONFIG_MTD_AT91_DATAFLASH_CARD /* DataFlash card */ at91_set_gpio_output(AT91_PIN_PB7, 0); #else /* MMC */ at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ at91_add_device_mmc(0, &homematic_mmc_data); #endif /* NAND */ at91_add_device_nand(&homematic_nand_data); }
static void __init dk_board_init(void) { /* Serial */ at91_add_device_serial(); /* Ethernet */ at91_add_device_eth(&dk_eth_data); /* USB Host */ at91_add_device_usbh(&dk_usbh_data); /* USB Device */ at91_add_device_udc(&dk_udc_data); at91_set_multi_drive(dk_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */ /* Compact Flash */ at91_add_device_cf(&dk_cf_data); /* I2C */ at91_add_device_i2c(dk_i2c_devices, ARRAY_SIZE(dk_i2c_devices)); /* SPI */ at91_add_device_spi(dk_spi_devices, ARRAY_SIZE(dk_spi_devices)); #ifdef CONFIG_MTD_AT91_DATAFLASH_CARD /* DataFlash card */ at91_set_gpio_output(AT91_PIN_PB7, 0); #else /* MMC */ at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ at91_add_device_mmc(0, &dk_mmc_data); #endif /* NAND */ at91_add_device_nand(&dk_nand_data); /* NOR Flash */ platform_device_register(&dk_flash); /* LEDs */ at91_gpio_leds(dk_leds, ARRAY_SIZE(dk_leds)); /* VGA */ // dk_add_device_video(); }
static void __init ek_board_init(void) { /* Serial */ at91_add_device_serial(); /* Ethernet */ at91_add_device_eth(&ek_eth_data); /* USB Host */ at91_add_device_usbh(&ek_usbh_data); /* USB Device */ at91_add_device_udc(&ek_udc_data); at91_set_multi_drive(ek_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */ /* I2C */ at91_add_device_i2c(); /* SPI */ at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); #ifdef CONFIG_MTD_AT91_DATAFLASH_CARD /* DataFlash card */ at91_set_gpio_output(AT91_PIN_PB22, 0); #else /* MMC */ at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ at91_add_device_mmc(&ek_mmc_data); #endif /* VGA */ // ek_add_device_video(); }
static void ek_add_device_w1(void) { at91_set_gpio_input(w1_pdata.pin, 0); at91_set_multi_drive(w1_pdata.pin, 1); add_generic_device_res("w1-gpio", DEVICE_ID_SINGLE, NULL, 0, &w1_pdata); at91sam9x5ek_devices_detect_hw(); }
void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { /* IP version is not the same on 9260 and g20 */ if (cpu_is_at91sam9g20()) { at91sam9260_twi_device.name = "i2c-at91sam9g20"; } else { at91sam9260_twi_device.name = "i2c-at91sam9260"; } /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA23, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PA23, 1); at91_set_A_periph(AT91_PIN_PA24, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PA24, 1); i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91sam9260_twi_device); }
void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { /* pins used for TWI0 interface */ at91_set_A_periph(AT91_PIN_PC7, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PC7, 1); at91_set_A_periph(AT91_PIN_PC8, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PC8, 1); /* pins used for TWI1 interface */ at91_set_A_periph(AT91_PIN_PC20, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PC20, 1); at91_set_A_periph(AT91_PIN_PC21, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PC21, 1); i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at572d940hf_twi0_device); platform_device_register(&at572d940hf_twi1_device); }
void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices) { i2c_register_board_info(i2c_id, devices, nr_devices); if (i2c_id == 0) { at91_set_GPIO_periph(AT91_PIN_PA20, 1); /* TWD (SDA) */ at91_set_multi_drive(AT91_PIN_PA20, 1); at91_set_GPIO_periph(AT91_PIN_PA21, 1); /* TWCK (SCL) */ at91_set_multi_drive(AT91_PIN_PA21, 1); platform_device_register(&at91sam9g45_twi0_device); } else { at91_set_GPIO_periph(AT91_PIN_PB10, 1); /* TWD (SDA) */ at91_set_multi_drive(AT91_PIN_PB10, 1); at91_set_GPIO_periph(AT91_PIN_PB11, 1); /* TWCK (SCL) */ at91_set_multi_drive(AT91_PIN_PB11, 1); platform_device_register(&at91sam9g45_twi1_device); } }
void __init at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_devices) { i2c_register_board_info(i2c_id, devices, nr_devices); /* pins used for TWI interface */ if (i2c_id == 0) { at91_set_A_periph(AT91_PIN_PA20, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PA20, 1); at91_set_A_periph(AT91_PIN_PA21, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PA21, 1); platform_device_register(&at91sam9g45_twi0_device); } else { at91_set_A_periph(AT91_PIN_PB10, 0); /* TWD */ at91_set_multi_drive(AT91_PIN_PB10, 1); at91_set_A_periph(AT91_PIN_PB11, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PB11, 1); platform_device_register(&at91sam9g45_twi1_device); } }
static void __init dk_board_init(void) { /* Setup the LEDs */ at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2); /* Serial */ /* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart(0, 0, 0); /* USART1 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ at91_register_uart(AT91RM9200_ID_US1, 1, ATMEL_UART_CTS | ATMEL_UART_RTS | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD | ATMEL_UART_RI); at91_add_device_serial(); /* Ethernet */ at91_add_device_eth(&dk_eth_data); /* USB Host */ at91_add_device_usbh(&dk_usbh_data); /* USB Device */ at91_add_device_udc(&dk_udc_data); at91_set_multi_drive(dk_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */ /* Compact Flash */ at91_add_device_cf(&dk_cf_data); /* I2C */ at91_add_device_i2c(dk_i2c_devices, ARRAY_SIZE(dk_i2c_devices)); /* SPI */ at91_add_device_spi(dk_spi_devices, ARRAY_SIZE(dk_spi_devices)); #ifdef CONFIG_MTD_AT91_DATAFLASH_CARD /* DataFlash card */ at91_set_gpio_output(AT91_PIN_PB7, 0); #else /* MMC */ at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ at91_add_device_mmc(0, &dk_mmc_data); #endif /* NAND */ at91_add_device_nand(&dk_nand_data); /* NOR Flash */ platform_device_register(&dk_flash); /* LEDs */ at91_gpio_leds(dk_leds, ARRAY_SIZE(dk_leds)); /* VGA */ // dk_add_device_video(); }
static void __init bf_board_init(void) { /* Serial */ at91_add_device_serial(); /* Ethernet */ at91_add_device_eth(&bf_eth_data); /* USB Host */ at91_add_device_usbh(&bf_usbh_data); /* USB Device */ at91_add_device_udc(&bf_udc_data); at91_set_multi_drive(bf_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */ /* I2C */ at91_add_device_i2c(bf_i2c_devices,ARRAY_SIZE(bf_i2c_devices)); /* SPI */ at91_add_device_spi(bf_spi_devices, ARRAY_SIZE(bf_spi_devices)); /* MMC */ at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ at91_add_device_mmc(0, &bf_mmc_data); }
void __init at91_add_device_cf(struct at91_cf_data *data) { struct platform_device *pdev; unsigned long csa; if (!data) return; csa = at91_sys_read(AT91_MATRIX_EBICSA); switch (data->chipselect) { case 4: at91_set_multi_drive(AT91_PIN_PC8, 0); at91_set_A_periph(AT91_PIN_PC8, 0); csa |= AT91_MATRIX_CS4A_SMC_CF1; cf0_data = *data; pdev = &cf0_device; break; case 5: at91_set_multi_drive(AT91_PIN_PC9, 0); at91_set_A_periph(AT91_PIN_PC9, 0); csa |= AT91_MATRIX_CS5A_SMC_CF2; cf1_data = *data; pdev = &cf1_device; break; default: printk(KERN_ERR "AT91 CF: bad chip-select requested (%u)\n", data->chipselect); return; } at91_sys_write(AT91_MATRIX_EBICSA, csa); if (data->rst_pin) { at91_set_multi_drive(data->rst_pin, 0); at91_set_gpio_output(data->rst_pin, 1); } if (data->irq_pin) { at91_set_gpio_input(data->irq_pin, 0); at91_set_deglitch(data->irq_pin, 1); } if (data->det_pin) { at91_set_gpio_input(data->det_pin, 0); at91_set_deglitch(data->det_pin, 1); } at91_set_B_periph(AT91_PIN_PC6, 0); /* CFCE1 */ at91_set_B_periph(AT91_PIN_PC7, 0); /* CFCE2 */ at91_set_A_periph(AT91_PIN_PC10, 0); /* CFRNW */ at91_set_A_periph(AT91_PIN_PC15, 1); /* NWAIT */ if (data->flags & AT91_CF_TRUE_IDE) #if defined(CONFIG_PATA_AT91) || defined(CONFIG_PATA_AT91_MODULE) pdev->name = "pata_at91"; #elif defined(CONFIG_BLK_DEV_IDE_AT91) || defined(CONFIG_BLK_DEV_IDE_AT91_MODULE) pdev->name = "at91_ide"; #else #warning "board requires AT91_CF_TRUE_IDE: enable either at91_ide or pata_at91" #endif else
static void ek_add_device_udc(void) { at91_add_device_udc(&ek_udc_data); at91_set_multi_drive(ek_udc_data.pullup_pin, 1); /* pullup_pin is connected to reset */ }
void add_w1(void) { at91_set_GPIO_periph(w1_gpio_pdata.pin, 1); at91_set_multi_drive(w1_gpio_pdata.pin, 1); platform_device_register(&w1_device); }