Ejemplo n.º 1
0
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);
	}
}
Ejemplo n.º 2
0
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);
	}
}
Ejemplo n.º 3
0
static int tny_a9260_devices_init(void)
{
	tny_a9260_add_device_nand();
	ek_add_device_macb();
	ek_add_device_udc();

	armlinux_set_bootparams((void *)(AT91_CHIPSELECT_1 + 0x100));
	tny_a9260_set_board_type();

	if (machine_is_tny_a9260() || machine_is_tny_a9g20()) {
		spi_register_board_info(tny_a9g20_spi_devices,
			ARRAY_SIZE(tny_a9g20_spi_devices));
		at91_add_device_spi(0, &spi_pdata);
	}

	devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
	dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
	devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw");
	dev_add_bb_dev("self_raw", "self0");
	devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
	dev_add_bb_dev("env_raw", "env0");
	devfs_add_partition("nand0", SZ_512K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw1");
	dev_add_bb_dev("env_raw1", "env1");

	return 0;
}
Ejemplo n.º 4
0
static int at91rm9200ek_devices_init(void)
{
	/*
	 * Correct IRDA resistor problem
	 * Set PA23_TXD in Output
	 */
	at91_set_gpio_output(AT91_PIN_PA23, 1);

	at91_add_device_eth(0, &ether_pdata);

	add_cfi_flash_device(0, AT91_CHIPSELECT_0, SZ_8M, 0);
	/* USB Host */
	at91_add_device_usbh_ohci(&ek_usbh_data);
	ek_device_add_leds();
	ek_add_device_udc();
	ek_add_device_spi();

#if defined(CONFIG_DRIVER_CFI) || defined(CONFIG_DRIVER_CFI_OLD)
	devfs_add_partition("nor0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self");
	devfs_add_partition("nor0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env0");
#endif

	armlinux_set_bootparams((void *)(AT91_CHIPSELECT_1 + 0x100));
	armlinux_set_architecture(MACH_TYPE_AT91RM9200EK);

	return 0;
}
Ejemplo n.º 5
0
static int usb_a9260_devices_init(void)
{
	usb_a9260_add_device_nand();
	usb_a9260_add_device_mci();
	usb_a9260_add_device_eth();
	usb_a9260_add_spi();
	usb_a9260_add_device_usb();
	ek_add_device_udc();
	ek_add_led();
	ek_add_device_button();
	usb_a9260_device_dab_mmx();

	usb_a9260_set_board_type();

	devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
	dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
	devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw");
	dev_add_bb_dev("self_raw", "self0");
	devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
	dev_add_bb_dev("env_raw", "env0");
	devfs_add_partition("nand0", SZ_512K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw1");
	dev_add_bb_dev("env_raw1", "env1");

	return 0;
}
Ejemplo n.º 6
0
static int at91sam9261ek_devices_init(void)
{

	ek_add_device_nand();
	ek_add_device_dm9000();
	ek_add_device_udc();
	ek_add_device_buttons();
	ek_device_add_leds();

	devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
	devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw");
	dev_add_bb_dev("self_raw", "self0");
	devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
	dev_add_bb_dev("env_raw", "env0");
	devfs_add_partition("nand0", SZ_512K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw1");
	dev_add_bb_dev("env_raw1", "env1");

	armlinux_set_bootparams((void *)(AT91_CHIPSELECT_1 + 0x100));
	if (machine_is_at91sam9g10ek())
		armlinux_set_architecture(MACH_TYPE_AT91SAM9G10EK);
	else
		armlinux_set_architecture(MACH_TYPE_AT91SAM9261EK);

	return 0;
}
Ejemplo n.º 7
0
static int usb_a9260_devices_init(void)
{
	usb_a9260_add_device_nand();
	usb_a9260_phy_reset();
	at91_add_device_eth(0, &macb_pdata);
	usb_a9260_add_device_mci();
	at91_add_device_usbh_ohci(&ek_usbh_data);
	ek_add_device_udc();
	ek_add_led();
	ek_add_device_button();
	usb_a9260_device_dab_mmx();

	armlinux_set_bootparams((void *)(AT91_CHIPSELECT_1 + 0x100));
	usb_a9260_set_board_type();

	devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
	dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
	devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw");
	dev_add_bb_dev("self_raw", "self0");
	devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
	dev_add_bb_dev("env_raw", "env0");
	devfs_add_partition("nand0", SZ_512K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw1");
	dev_add_bb_dev("env_raw1", "env1");

	return 0;
}
Ejemplo n.º 8
0
static int tny_a9260_devices_init(void)
{
	tny_a9260_add_device_nand();
	ek_add_device_macb();
	ek_add_device_udc();
	ek_add_device_spi();

	tny_a9260_set_board_type();

	devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
	dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
	devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw");
	dev_add_bb_dev("self_raw", "self0");
	devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
	dev_add_bb_dev("env_raw", "env0");
	devfs_add_partition("nand0", SZ_512K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw1");
	dev_add_bb_dev("env_raw1", "env1");

	return 0;
}
Ejemplo n.º 9
0
static int at91sam9263ek_devices_init(void)
{
	/*
	 * PB27 enables the 50MHz oscillator for Ethernet PHY
	 * 1 - enable
	 * 0 - disable
	 */
	at91_set_gpio_output(AT91_PIN_PB27, 1);
	at91_set_gpio_value(AT91_PIN_PB27, 1); /* 1- enable, 0 - disable */

	ek_add_device_nand();
	at91_add_device_eth(0, &macb_pdata);
	add_cfi_flash_device(0, AT91_CHIPSELECT_0, 8 * 1024 * 1024, 0);
	ek_add_device_mci();
	ek_device_add_leds();
	ek_add_device_udc();
	ek_add_device_buttons();

	if (IS_ENABLED(CONFIG_DRIVER_CFI) && cdev_by_name("nor0")) {
		devfs_add_partition("nor0", 0x00000, 0x40000, PARTITION_FIXED, "self");
		devfs_add_partition("nor0", 0x40000, 0x20000, PARTITION_FIXED, "env0");
	} else if (IS_ENABLED(CONFIG_NAND_ATMEL)) {
		devfs_add_partition("nand0", 0x00000, SZ_128K, PARTITION_FIXED, "at91bootstrap_raw");
		dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
		devfs_add_partition("nand0", SZ_128K, SZ_256K, PARTITION_FIXED, "self_raw");
		dev_add_bb_dev("self_raw", "self0");
		devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, PARTITION_FIXED, "env_raw");
		dev_add_bb_dev("env_raw", "env0");
		devfs_add_partition("nand0", SZ_512K, SZ_128K, PARTITION_FIXED, "env_raw1");
		dev_add_bb_dev("env_raw1", "env1");
	}

	armlinux_set_bootparams((void *)(AT91_CHIPSELECT_1 + 0x100));
	armlinux_set_architecture(MACH_TYPE_AT91SAM9263EK);

	return 0;
}
Ejemplo n.º 10
0
static int at91sam9261ek_devices_init(void)
{
    u32 barebox_part_start;
    u32 barebox_part_size;

    ek_add_device_nand();
    ek_add_device_dm9000();
    ek_add_device_udc();
    ek_add_device_buttons();
    ek_device_add_leds();
    ek_add_device_lcdc();
    ek_add_device_spi();

    if (IS_ENABLED(CONFIG_AT91_LOAD_BAREBOX_SRAM)) {
        barebox_part_start = 0;
        barebox_part_size = SZ_256K + SZ_128K;
        export_env_ull("borebox_first_stage", 1);
    } else {
        devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
        barebox_part_start = SZ_128K;
        barebox_part_size = SZ_256K;
    }
    devfs_add_partition("nand0", barebox_part_start, barebox_part_size,
                        DEVFS_PARTITION_FIXED, "self_raw");
    dev_add_bb_dev("self_raw", "self0");
    devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw");
    dev_add_bb_dev("env_raw", "env0");
    devfs_add_partition("nand0", SZ_512K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw1");
    dev_add_bb_dev("env_raw1", "env1");

    if (machine_is_at91sam9g10ek())
        armlinux_set_architecture(MACH_TYPE_AT91SAM9G10EK);
    else
        armlinux_set_architecture(MACH_TYPE_AT91SAM9261EK);

    return 0;
}