diff options
Diffstat (limited to 'arch/arm/boards/friendlyarm-mini6410/mini6410.c')
-rw-r--r-- | arch/arm/boards/friendlyarm-mini6410/mini6410.c | 312 |
1 files changed, 0 insertions, 312 deletions
diff --git a/arch/arm/boards/friendlyarm-mini6410/mini6410.c b/arch/arm/boards/friendlyarm-mini6410/mini6410.c deleted file mode 100644 index 90fb3f5c1e..0000000000 --- a/arch/arm/boards/friendlyarm-mini6410/mini6410.c +++ /dev/null @@ -1,312 +0,0 @@ -/* - * Copyright (C) 2012 Juergen Beisert - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ -#include <common.h> -#include <driver.h> -#include <init.h> -#include <platform_data/eth-dm9000.h> -#include <gpio.h> -#include <envfs.h> -#include <generated/mach-types.h> -#include <asm/armlinux.h> -#include <mach/s3c-iomap.h> -#include <mach/devices-s3c64xx.h> -#include <mach/s3c-generic.h> -#include <mach/iomux.h> - -/* - * dm9000 network controller onboard - * Connected to CS line 1 and interrupt line EINT7, - * data width is 16 bit - * Area 1: Offset 0x300...0x301 - * Area 2: Offset 0x304...0x305 - */ -static struct dm9000_platform_data dm9000_data = { - .srom = 0, /* no serial ROM for the ethernet address */ -}; - -static const unsigned pin_usage[] = { - /* UART2 (spare, 3,3 V TTL level only) */ - GPA4_RXD1 | ENABLE_PU, - GPA5_TXD1, - GPA6_NCTS1 | ENABLE_PU, - GPA7_NRTS1, - /* UART3 (spare, 3,3 V TTL level only) */ - GPB0_RXD2 | ENABLE_PU, - GPB1_TXD2, - /* UART4 (spare, 3,3 V TTL level only) */ - GPB2_RXD3 | ENABLE_PU, - GPB3_TXD3, - - GPB4_GPIO | GPIO_IN | ENABLE_PU, - - /* I2C bus */ - GPB5_IIC0_SCL, /* external PU */ - GPB6_IIC0_SDA, /* external PU */ - - GPC0_SPI0_MISO | ENABLE_PU, - GPC1_SPI0_CLK, - GPC2_SPI0_MOSI, - GPC3_SPI0_NCS, - - GPC4_SPI1_MISO | ENABLE_PU, - GPC5_SPI1_CLK, - GPC6_SPI1_MOSI, - GPC7_SPI1_NCS, - - GPD0_AC97_BITCLK, - GPD1_AC97_NRST, - GPD2_AC97_SYNC, - GPD3_AC97_SDI | ENABLE_PU, - GPD4_AC97_SDO, - - GPE0_GPIO | GPIO_OUT | GPIO_VAL(0), /* LCD backlight off */ - GPE1_GPIO | GPIO_IN | ENABLE_PU, - GPE2_GPIO | GPIO_IN | ENABLE_PU, - GPE3_GPIO | GPIO_IN | ENABLE_PU, - GPE4_GPIO | GPIO_IN | ENABLE_PU, - - /* keep all camera signals at reasonable values */ - GPF0_GPIO | GPIO_IN | ENABLE_PU, - GPF1_GPIO | GPIO_IN | ENABLE_PU, - GPF2_GPIO | GPIO_IN | ENABLE_PU, - GPF3_GPIO | GPIO_IN | ENABLE_PU, - GPF4_GPIO | GPIO_IN | ENABLE_PU, - GPF5_GPIO | GPIO_IN | ENABLE_PU, - GPF6_GPIO | GPIO_IN | ENABLE_PU, - GPF7_GPIO | GPIO_IN | ENABLE_PU, - GPF8_GPIO | GPIO_IN | ENABLE_PU, - GPF9_GPIO | GPIO_IN | ENABLE_PU, - GPF10_GPIO | GPIO_IN | ENABLE_PU, - GPF11_GPIO | GPIO_IN | ENABLE_PU, - GPF12_GPIO | GPIO_IN | ENABLE_PU, - GPF13_GPIO | GPIO_OUT | GPIO_VAL(0), /* USB power off */ -#if 0 - GPF14_CLKOUT, /* for testing purposes, but very noisy */ -#else - GPF14_GPIO | GPIO_OUT | GPIO_VAL(0), /* Buzzer off */ -#endif - GPF15_GPIO | GPIO_OUT | GPIO_VAL(0), /* Backlight PWM inactive */ - - /* SD card slot (all signals have external 10k PU) */ - GPG0_MMC0_CLK, - GPG1_MMC0_CMD, - GPG2_MMC0_DAT0, - GPG3_MMC0_DAT1, - GPG4_MMC0_DAT2, - GPG5_MMC0_DAT3, - GPG6_MMC0_NCD, - - /* SDIO slot (all used signals have external PU) */ - GPH0_GPIO | GPIO_IN, /* CLK */ - GPH1_GPIO | GPIO_IN, /* CMD */ - GPH2_GPIO | GPIO_IN, /* DAT0 */ - GPH3_GPIO | GPIO_IN, /* DAT1 */ - GPH4_GPIO | GPIO_IN, /* DAT2 */ - GPH5_GPIO | GPIO_IN, /* DAT3 */ - GPH6_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */ - GPH7_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */ - GPH8_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */ - GPH9_GPIO | GPIO_IN | ENABLE_PU, /* nowhere connected */ - - /* as long as we are not using the LCD controller, disable the pins */ - GPI0_GPIO | GPIO_IN | ENABLE_PD, - GPI1_GPIO | GPIO_IN | ENABLE_PD, - GPI2_GPIO | GPIO_IN | ENABLE_PD, - GPI3_GPIO | GPIO_IN | ENABLE_PD, - GPI4_GPIO | GPIO_IN | ENABLE_PD, - GPI5_GPIO | GPIO_IN | ENABLE_PD, - GPI6_GPIO | GPIO_IN | ENABLE_PD, - GPI7_GPIO | GPIO_IN | ENABLE_PD, - GPI8_GPIO | GPIO_IN | ENABLE_PD, - GPI9_GPIO | GPIO_IN | ENABLE_PD, - GPI10_GPIO | GPIO_IN | ENABLE_PD, - GPI11_GPIO | GPIO_IN | ENABLE_PD, - GPI12_GPIO | GPIO_IN | ENABLE_PD, - GPI13_GPIO | GPIO_IN | ENABLE_PD, - GPI14_GPIO | GPIO_IN | ENABLE_PD, - GPI15_GPIO | GPIO_IN | ENABLE_PD, - GPJ0_GPIO | GPIO_IN | ENABLE_PD, - GPJ1_GPIO | GPIO_IN | ENABLE_PD, - GPJ2_GPIO | GPIO_IN | ENABLE_PD, - GPJ3_GPIO | GPIO_IN | ENABLE_PD, - GPJ4_GPIO | GPIO_IN | ENABLE_PD, - GPJ5_GPIO | GPIO_IN | ENABLE_PD, - GPJ6_GPIO | GPIO_IN | ENABLE_PD, - GPJ7_GPIO | GPIO_IN | ENABLE_PD, - GPJ8_GPIO | GPIO_IN | ENABLE_PD, - GPJ9_GPIO | GPIO_IN | ENABLE_PD, - GPJ10_GPIO | GPIO_IN | ENABLE_PD, - GPJ11_GPIO | GPIO_IN | ENABLE_PD, - - GPK0_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK1_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK2_GPIO | GPIO_IN, - GPK3_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK4_GPIO | GPIO_OUT | GPIO_VAL(1), /* LED #1 (high = LED off) */ - GPK5_GPIO | GPIO_OUT | GPIO_VAL(1), /* LED #2 (high = LED off) */ - GPK6_GPIO | GPIO_OUT | GPIO_VAL(1), /* LED #3 (high = LED off) */ - GPK7_GPIO | GPIO_OUT | GPIO_VAL(1), /* LED #4 (high = LED off) */ - GPK8_GPIO | GPIO_IN, /* (external PU) */ - GPK9_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK10_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK11_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK12_GPIO | GPIO_IN, /* OCT_DET */ - GPK13_GPIO | GPIO_IN, /* WIFI power (external PU) */ - GPK14_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPK15_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - - GPL0_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL1_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL2_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL3_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL4_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL5_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL6_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL7_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPL8_GPIO | GPIO_IN, /* EINT16 (external PU) */ - GPL9_GPIO | GPIO_IN | ENABLE_PU, /* EINT17 */ - GPL10_GPIO | GPIO_IN | ENABLE_PU, /* EINT18 */ - GPL11_GPIO | GPIO_IN, /* EINT19 + K7 (external PU) */ - GPL12_GPIO | GPIO_IN, /* EINT20 + K6 (external PU) */ - GPL13_GPIO | GPIO_IN, /* SD0 WP (external PU) */ - GPL14_GPIO | GPIO_IN, /* SD1 WP (external PU) */ - - GPM0_GPIO | GPIO_IN, /* (external PU) */ - GPM1_GPIO | GPIO_IN, /* (external PU) */ - GPM2_GPIO | GPIO_IN, /* (external PU) */ - GPM3_GPIO | GPIO_IN, /* (external PU) */ - GPM4_GPIO | GPIO_IN, /* (external PU) */ - GPM5_GPIO | GPIO_IN, /* (external PU) */ - - GPN0_GPIO | GPIO_IN, /* EINT0 (external PU) */ - GPN1_GPIO | GPIO_IN, /* EINT1 (external PU) */ - GPN2_GPIO | GPIO_IN, /* EINT2 (external PU) */ - GPN3_GPIO | GPIO_IN, /* EINT3 (external PU) */ - GPN4_GPIO | GPIO_IN, /* EINT4 (external PU) */ - GPN5_GPIO | GPIO_IN, /* EINT5 (external PU) */ - GPN6_GPIO | GPIO_IN, /* EINT6 (external PU) */ - GPN7_GPIO | GPIO_IN | ENABLE_PU, /* EINT7 DM9000 interrupt */ - GPN8_GPIO | GPIO_IN, /* EINT8 USB detect (external PU) */ - GPN9_GPIO | GPIO_IN, /* EINT9 (external PU) */ - GPN10_GPIO | GPIO_IN, /* SD1 CD (external PU) */ - GPN11_GPIO | GPIO_IN, /* EINT11 (external PU) */ - GPN12_GPIO | GPIO_IN, /* EINT12 IR in (external PU) */ - GPN13_GPIO | GPIO_IN, /* BOOT0/EINT13 (externally fixed) */ - GPN14_GPIO | GPIO_IN, /* BOOT1/EINT14 (externally fixed) */ - GPN15_GPIO | GPIO_IN, /* BOOT2/EINT15 (externally fixed) */ - - GPO0_NCS2, /* NAND */ - GPO1_NCS3, /* NAND */ - GPO2_NCS4, /* CON5 */ - GPO3_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO4_GPIO | GPIO_IN | ENABLE_PU, /* CON5 pin 8 */ - GPO5_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO6_ADDR6, /* CON5 */ - GPO7_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO8_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO9_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO10_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO11_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO12_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO13_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO14_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPO15_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - - GPP0_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPP1_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPP2_NWAIT | ENABLE_PU, /* CON5 */ - GPP3_FALE, /* NAND */ - GPP4_FCLE, /* NAND */ - GPP5_FWE, /* NAND */ - GPP6_FRE, /* NAND */ - GPP7_RNB, /* NAND (external PU) */ - GPP8_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPP9_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPP10_GPIO | GPIO_IN, /* (external PU) */ - GPP11_GPIO | GPIO_IN, /* (external PU) */ - GPP12_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPP13_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - GPP14_GPIO | GPIO_IN | ENABLE_PU, /* not used */ - - GPQ0_GPIO | GPIO_IN | ENABLE_PU, /* not used as LADDR18 */ - GPQ1_GPIO | GPIO_IN, /* (external PU) */ - GPQ2_GPIO | GPIO_IN, /* (external PU) */ - GPQ3_GPIO | GPIO_IN, /* (external PU) */ - GPQ4_GPIO | GPIO_IN, /* (external PU) */ - GPQ5_GPIO | GPIO_IN, /* (external PU) */ - GPQ6_GPIO | GPIO_IN, /* (external PU) */ - GPQ7_GPIO | GPIO_IN | ENABLE_PU, /* not used as LADDR17 */ - GPQ8_GPIO | GPIO_IN | ENABLE_PU, /* not used as LADDR16 */ -}; - -static int mini6410_mem_init(void) -{ - arm_add_mem_device("ram0", S3C_SDRAM_BASE, s3c6410_get_memory_size()); - - return 0; -} -mem_initcall(mini6410_mem_init); - -static const struct s3c6410_chipselect dm900_cs = { - .adr_setup_t = 0, - .access_setup_t = 0, - .access_t = 20, - .cs_hold_t = 3, - .adr_hold_t = 20, /* CS must be de-asserted for at least 20 ns */ - .width = 16, -}; - -static void mini6410_setup_dm9000_cs(void) -{ - s3c6410_setup_chipselect(1, &dm900_cs); -} - -static int mini6410_devices_init(void) -{ - int i; - - /* ----------- configure the access to the outer space ---------- */ - for (i = 0; i < ARRAY_SIZE(pin_usage); i++) - s3c_gpio_mode(pin_usage[i]); - - mini6410_setup_dm9000_cs(); - add_dm9000_device(0, S3C_CS1_BASE + 0x300, S3C_CS1_BASE + 0x304, - IORESOURCE_MEM_16BIT, &dm9000_data); - - armlinux_set_architecture(MACH_TYPE_MINI6410); - - if (IS_ENABLED(CONFIG_DEFAULT_ENVIRONMENT_GENERIC)) - defaultenv_append_directory(defaultenv_friendlyarm_mini6410); - - return 0; -} - -device_initcall(mini6410_devices_init); - -static int mini6410_console_init(void) -{ - s3c_gpio_mode(GPA0_RXD0 | ENABLE_PU); - s3c_gpio_mode(GPA1_TXD0); - s3c_gpio_mode(GPA2_NCTS0 | ENABLE_PU); - s3c_gpio_mode(GPA3_NRTS0); - - barebox_set_model("Friendlyarm mini6410"); - barebox_set_hostname("mini6410"); - - s3c64xx_add_uart1(); - - return 0; -} - -console_initcall(mini6410_console_init); |