Changeset 33388


Ignore:
Timestamp:
2012-09-13T09:26:26+02:00 (5 years ago)
Author:
juhosg
Message:

ar71xx: register the NAND controller device on the RB2011

Location:
trunk/target/linux/ar71xx
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c

    r33349 r33388  
    1313 
    1414#include <linux/phy.h> 
     15#include <linux/delay.h> 
    1516#include <linux/platform_device.h> 
    1617#include <linux/ath9k_platform.h> 
    1718#include <linux/ar8216_platform.h> 
    1819#include <linux/mtd/mtd.h> 
     20#include <linux/mtd/nand.h> 
    1921#include <linux/mtd/partitions.h> 
    2022#include <linux/spi/spi.h> 
     
    2224#include <linux/rle.h> 
    2325#include <linux/routerboot.h> 
     26#include <linux/gpio.h> 
    2427 
    2528#include <asm/mach-ath79/ath79.h> 
     
    2932#include "dev-eth.h" 
    3033#include "dev-m25p80.h" 
     34#include "dev-nfc.h" 
    3135#include "dev-wmac.h" 
    3236#include "machtypes.h" 
    3337#include "routerboot.h" 
     38 
     39#define RB2011_GPIO_NAND_NCE    14 
    3440 
    3541#define RB_ROUTERBOOT_OFFSET    0x0000 
     
    6773}; 
    6874 
     75static struct mtd_partition rb2011_nand_partitions[] = { 
     76        { 
     77                .name   = "booter", 
     78                .offset = 0, 
     79                .size   = (256 * 1024), 
     80                .mask_flags = MTD_WRITEABLE, 
     81        }, 
     82        { 
     83                .name   = "kernel", 
     84                .offset = (256 * 1024), 
     85                .size   = (4 * 1024 * 1024) - (256 * 1024), 
     86        }, 
     87        { 
     88                .name   = "rootfs", 
     89                .offset = MTDPART_OFS_NXTBLK, 
     90                .size   = MTDPART_SIZ_FULL, 
     91        }, 
     92}; 
     93 
    6994static struct flash_platform_data rb2011_spi_flash_data = { 
    7095        .parts          = rb2011_spi_partitions, 
     
    152177} 
    153178 
     179static void rb2011_nand_select_chip(int chip_no) 
     180{ 
     181        switch (chip_no) { 
     182        case 0: 
     183                gpio_set_value(RB2011_GPIO_NAND_NCE, 0); 
     184                break; 
     185        default: 
     186                gpio_set_value(RB2011_GPIO_NAND_NCE, 1); 
     187                break; 
     188        } 
     189        ndelay(500); 
     190} 
     191 
     192static struct nand_ecclayout rb2011_nand_ecclayout = { 
     193        .eccbytes       = 6, 
     194        .eccpos         = { 8, 9, 10, 13, 14, 15 }, 
     195        .oobavail       = 9, 
     196        .oobfree        = { { 0, 4 }, { 6, 2 }, { 11, 2 }, { 4, 1 } } 
     197}; 
     198 
     199static int rb2011_nand_scan_fixup(struct mtd_info *mtd) 
     200{ 
     201        struct nand_chip *chip = mtd->priv; 
     202 
     203        if (mtd->writesize == 512) { 
     204                /* 
     205                 * Use the OLD Yaffs-1 OOB layout, otherwise RouterBoot 
     206                 * will not be able to find the kernel that we load. 
     207                 */ 
     208                chip->ecc.layout = &rb2011_nand_ecclayout; 
     209        } 
     210 
     211        return 0; 
     212} 
     213 
     214static void __init rb2011_nand_init(void) 
     215{ 
     216        ath79_nfc_set_scan_fixup(rb2011_nand_scan_fixup); 
     217        ath79_nfc_set_parts(rb2011_nand_partitions, 
     218                            ARRAY_SIZE(rb2011_nand_partitions)); 
     219        ath79_nfc_set_select_chip(rb2011_nand_select_chip); 
     220        ath79_register_nfc(); 
     221} 
     222 
     223static void __init rb2011_gpio_init(void) 
     224{ 
     225        gpio_request_one(RB2011_GPIO_NAND_NCE, GPIOF_OUT_INIT_HIGH, "NAND nCE"); 
     226} 
     227 
    154228static void __init rb2011_setup(void) 
    155229{ 
     230        rb2011_gpio_init(); 
     231 
    156232        ath79_register_m25p80(&rb2011_spi_flash_data); 
     233        rb2011_nand_init(); 
    157234 
    158235        rb2011_gmac_setup(); 
  • trunk/target/linux/ar71xx/nand/config-default

    r31027 r33388  
     1CONFIG_ATH79_DEV_NFC=y 
    12CONFIG_CMDLINE="rootfstype=yaffs noinitrd" 
    23# CONFIG_JFFS2_CMODE_PRIORITY is not set 
     
    56CONFIG_MDIO_GPIO=y 
    67CONFIG_MTD_NAND=y 
     8CONFIG_MTD_NAND_AR934X=y 
    79CONFIG_MTD_NAND_ECC=y 
    810CONFIG_MTD_NAND_RB4XX=y 
  • trunk/target/linux/ar71xx/patches-3.3/613-RB2011-support.patch

    r33387 r33388  
    11--- a/arch/mips/ath79/Kconfig 
    22+++ b/arch/mips/ath79/Kconfig 
    3 @@ -335,6 +335,11 @@ config ATH79_MACH_RB750 
     3@@ -335,6 +335,12 @@ config ATH79_MACH_RB750 
    44        select ATH79_ROUTERBOOT 
    55        select RLE_DECOMPRESS 
     
    99+       select SOC_AR934x 
    1010+       select ATH79_DEV_ETH 
     11+       select ATH79_DEV_NFC 
    1112+ 
    1213 config ATH79_MACH_WNDR3700 
  • trunk/target/linux/ar71xx/patches-3.3/614-MIPS-ath79-rb2011uas-2hnd-support.patch

    r33349 r33388  
    1111--- a/arch/mips/ath79/Kconfig 
    1212+++ b/arch/mips/ath79/Kconfig 
    13 @@ -339,6 +339,8 @@ config ATH79_MACH_RB2011 
    14         bool "MikroTik RouterBOARD 2011 support" 
     13@@ -340,6 +340,8 @@ config ATH79_MACH_RB2011 
    1514        select SOC_AR934x 
    1615        select ATH79_DEV_ETH 
     16        select ATH79_DEV_NFC 
    1717+       select ATH79_DEV_WMAC 
    1818+       select ATH79_ROUTERBOOT 
Note: See TracChangeset for help on using the changeset viewer.