]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge branch 'master' into tk71
authorNils Faerber <nils.faerber@kernelconcepts.de>
Fri, 6 May 2011 20:20:15 +0000 (22:20 +0200)
committerNils Faerber <nils.faerber@kernelconcepts.de>
Fri, 6 May 2011 20:20:15 +0000 (22:20 +0200)
Conflicts:
arch/arm/mach-kirkwood/Makefile

arch/arm/configs/tk71_defconfig [new file with mode: 0644]
arch/arm/mach-kirkwood/Kconfig
arch/arm/mach-kirkwood/Makefile
arch/arm/mach-kirkwood/tk71-setup.c [new file with mode: 0644]
drivers/net/mv643xx_eth.c

diff --git a/arch/arm/configs/tk71_defconfig b/arch/arm/configs/tk71_defconfig
new file mode 100644 (file)
index 0000000..0109313
--- /dev/null
@@ -0,0 +1,145 @@
+CONFIG_EXPERIMENTAL=y
+CONFIG_SYSVIPC=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_ARCH_KIRKWOOD=y
+CONFIG_MACH_TK71=y
+# CONFIG_CPU_FEROCEON_OLD_ID is not set
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CPU_IDLE=y
+CONFIG_PM=y
+CONFIG_PM_RUNTIME=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_IPV6 is not set
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_MTD=y
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_GEOMETRY=y
+# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
+# CONFIG_MTD_CFI_I2 is not set
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ORION=y
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_MISC_DEVICES is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_ATA=y
+CONFIG_SATA_MV=y
+CONFIG_NETDEVICES=y
+CONFIG_MARVELL_PHY=y
+CONFIG_MV643XX_ETH=y
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_SERIO is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_ORION_WATCHDOG=y
+# CONFIG_HID_SUPPORT is not set
+CONFIG_USB=y
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_LIBUSUAL=y
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_MMC=y
+CONFIG_MMC_MVSDIO=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_MV=y
+CONFIG_DMADEVICES=y
+CONFIG_MV_XOR=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+# CONFIG_EXT3_FS_XATTR is not set
+CONFIG_FSCACHE=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=850
+CONFIG_TMPFS=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_PRINTK_TIME=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DEV_MV_CESA=y
index 7fc603b468916014d12499c26825e945655a1941..703355337d45a0d034e665747d1de9c32e4002aa 100644 (file)
@@ -94,6 +94,12 @@ config MACH_NETSPACE_V2
          Say 'Y' here if you want your kernel to support the
          LaCie Network Space v2 NAS.
 
+config MACH_TK71
+       bool "TK71 88F6281 based Q7 form factor board"
+       help
+         Say 'Y' here if you want your kernel to support the
+         TK71 88F6281 based Q7 form factor board.
+
 config MACH_INETSPACE_V2
        bool "LaCie Internet Space v2 NAS Board"
        help
index 5dcaa81a2ec39f0f6b60a13438651ab381fc6eb4..2cb84f5e3e9ff4dc83d8bf626c0a4868c3dd3f89 100644 (file)
@@ -18,5 +18,6 @@ obj-$(CONFIG_MACH_D2NET_V2)           += d2net_v2-setup.o lacie_v2-common.o
 obj-$(CONFIG_MACH_NET2BIG_V2)          += netxbig_v2-setup.o lacie_v2-common.o
 obj-$(CONFIG_MACH_NET5BIG_V2)          += netxbig_v2-setup.o lacie_v2-common.o
 obj-$(CONFIG_MACH_T5325)               += t5325-setup.o
+obj-$(CONFIG_MACH_TK71)                        += tk71-setup.o
 
 obj-$(CONFIG_CPU_IDLE)                 += cpuidle.o
diff --git a/arch/arm/mach-kirkwood/tk71-setup.c b/arch/arm/mach-kirkwood/tk71-setup.c
new file mode 100644 (file)
index 0000000..1966a12
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ * arch/arm/mach-kirkwood/tk71-setup.c
+ * based on
+ * arch/arm/mach-kirkwood/rd88f6281-setup.c
+ *
+ * TK71 Kirkwood based Q7 formfactor board
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/irq.h>
+#include <linux/mtd/nand.h>
+#include <linux/mtd/partitions.h>
+#include <linux/ata_platform.h>
+#include <linux/mv643xx_eth.h>
+#include <linux/gpio.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <mach/kirkwood.h>
+#include <plat/mvsdio.h>
+#include <plat/orion_nand.h>
+#include "common.h"
+#include "mpp.h"
+
+static struct mtd_partition tk71_nand_parts[] = {
+       {
+               .name = "u-boot",
+               .offset = 0,
+               .size = 0x80000
+       }, {
+               .name = "u-boot-env",
+               .offset = MTDPART_OFS_NXTBLK,
+               .size = 0x80000
+       }, {
+               .name = "kernel",
+               .offset = MTDPART_OFS_NXTBLK,
+               .size = 0x300000
+       }, {
+               .name = "root",
+               .offset = MTDPART_OFS_NXTBLK,
+               .size = MTDPART_SIZ_FULL
+       },
+};
+
+static struct mv643xx_eth_platform_data tk71_ge00_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(8),
+       /* in case a hardcoded MAC address is needed uncomment next line */
+       /* .mac_addr    = {0x00, 0x0c, 0xc6, 0x76, 0x76, 0x2b}, */
+};
+
+static struct mv643xx_eth_platform_data tk71_ge01_data = {
+       .phy_addr       = MV643XX_ETH_PHY_ADDR(28),
+       /* in case a hardcoded MAC address is needed uncomment next line */
+       /* .mac_addr    = {0x00, 0x0c, 0xc6, 0x76, 0x76, 0x2c}, */
+};
+
+static struct mv_sata_platform_data tk71_sata_data = {
+       .n_ports        = 2,
+};
+
+static struct mvsdio_platform_data tk71_mvsdio_data = {
+       .gpio_card_detect = 29,
+};
+
+static unsigned int tk71_mpp_config[] __initdata = {
+#if 0
+       MPP0_SPI_SCn,           /* SPI - currently unused */
+       MPP1_SPI_MOSI,
+       MPP2_SPI_SCK,
+       MPP3_SPI_MISO,
+#endif
+       MPP7_PEX_RST_OUTn,      /* PCIe #reset */
+       MPP8_TW0_SDA,           /* I2C */
+       MPP9_TW0_SCK,           /* I2C */
+       MPP20_GE1_TXD0,         /* second GigE */
+       MPP21_GE1_TXD1,
+       MPP22_GE1_TXD2,
+       MPP23_GE1_TXD3,
+       MPP24_GE1_RXD0,
+       MPP25_GE1_RXD1,
+       MPP26_GE1_RXD2,
+       MPP27_GE1_RXD3,
+       MPP28_GPIO,             /* PHY2 RESET */
+       MPP29_GPIO,             /* SDIO_CD# */
+       MPP30_GE1_RXCTL,
+       MPP31_GE1_RXCLK,
+       MPP32_GE1_TCLKOUT,
+       MPP33_GE1_TXCTL,
+       MPP34_GPIO,             /* SDIO_PWR# */
+       0
+};
+
+static void __init tk71_init(void)
+{
+       /*
+        * Basic setup. Needs to be called early.
+        */
+       kirkwood_init();
+
+       kirkwood_mpp_conf(tk71_mpp_config);
+
+       kirkwood_uart0_init();
+
+       kirkwood_nand_init(ARRAY_AND_SIZE(tk71_nand_parts), 25);
+
+       /* kirkwood_spi_init(); */ /* if you want to use SPI, uncomment this and MPP setup above*/
+
+       kirkwood_i2c_init();
+
+       /* eth0 */
+       kirkwood_ge00_init(&tk71_ge00_data);
+
+       /* eth1 */
+       if (gpio_request(28, "PHY2 reset") != 0 ||
+               gpio_direction_input(28) != 0) /* high-z */
+               pr_err("can't deassert GPIO 28 (PHY2 reset)\n");
+       else
+               kirkwood_ge01_init(&tk71_ge01_data);
+
+       kirkwood_sata_init(&tk71_sata_data);
+
+       kirkwood_ehci_init();
+
+       if (gpio_request(34, "SDIO Power Enable") != 0 ||
+               gpio_direction_output(34, 0) != 0) /* low active */
+               pr_err("can't set up GPIO 34 (SDIO Power Enable)\n");
+       kirkwood_sdio_init(&tk71_mvsdio_data);
+}
+
+static int __init tk71_pci_init(void)
+{
+       if (machine_is_tk71())
+               kirkwood_pcie_init(KW_PCIE0);
+
+       return 0;
+}
+subsys_initcall(tk71_pci_init);
+
+MACHINE_START(TK71, "TK71 Kirkwood based Q7 formfactor board")
+       /* Maintainer: Nils Faerber <nils.faerber@kernelconcepts.de> */
+       .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
+       .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
+       .boot_params    = 0x00000100,
+       .init_machine   = tk71_init,
+       .map_io         = kirkwood_map_io,
+       .init_irq       = kirkwood_init_irq,
+       .timer          = &kirkwood_timer,
+MACHINE_END
index 02076e16542a30b2a4e98e5debd667c53eea77e3..f57f88e1bd3fffb5c544996108b836a0f89e1538 100644 (file)
@@ -2787,11 +2787,13 @@ static struct phy_device *phy_scan(struct mv643xx_eth_private *mp,
 
                if (phydev == NULL) {
                        phydev = bus->phy_map[addr];
-                       if (phydev != NULL)
+                       if (phydev != NULL) {
                                phy_addr_set(mp, addr);
+                               printk(KERN_INFO "mv643xx_eth: found PHY @ %d ID %08x\n", phydev->addr, phydev->phy_id);
+                       } else
+                               printk(KERN_ERR "mv643xx_eth: PHY @ %d not found!\n", addr);
                }
        }
-
        return phydev;
 }