source: trunk/target/linux/omap24xx/patches-2.6.38/300-nokia-board.patch @ 25746

Last change on this file since 25746 was 25746, checked in by mb, 5 years ago

omap24xx: Add 2.6.38 files

File size: 4.5 KB
  • arch/arm/mach-omap2/board-n8x0.c

    old new  
    1515#include <linux/delay.h> 
    1616#include <linux/gpio.h> 
    1717#include <linux/init.h> 
     18#include <linux/irq.h> 
    1819#include <linux/io.h> 
    1920#include <linux/stddef.h> 
     21#include <linux/platform_device.h> 
    2022#include <linux/i2c.h> 
    2123#include <linux/spi/spi.h> 
    2224#include <linux/usb/musb.h> 
     
    3335#include <plat/onenand.h> 
    3436#include <plat/mmc.h> 
    3537#include <plat/serial.h> 
     38#include <plat/cbus.h> 
    3639 
    3740#include "mux.h" 
    3841 
     
    194197}; 
    195198#endif 
    196199 
     200#if defined(CONFIG_CBUS) || defined(CONFIG_CBUS_MODULE) 
     201 
     202static struct cbus_host_platform_data n8x0_cbus_data = { 
     203        .clk_gpio       = 66, 
     204        .dat_gpio       = 65, 
     205        .sel_gpio       = 64, 
     206}; 
     207 
     208static struct platform_device n8x0_cbus_device = { 
     209        .name           = "cbus", 
     210        .id             = -1, 
     211        .dev            = { 
     212                .platform_data = &n8x0_cbus_data, 
     213        }, 
     214}; 
     215 
     216static struct resource retu_resource[] = { 
     217        { 
     218                .start  = -EINVAL, /* set later */ 
     219                .flags  = IORESOURCE_IRQ, 
     220        }, 
     221}; 
     222 
     223static struct cbus_retu_platform_data n8x0_retu_data = { 
     224        .irq_base       = CBUS_RETU_IRQ_BASE, 
     225        .irq_end        = CBUS_RETU_IRQ_END, 
     226        .devid          = CBUS_RETU_DEVICE_ID, 
     227}; 
     228 
     229static struct platform_device retu_device = { 
     230        .name           = "retu", 
     231        .id             = -1, 
     232        .resource       = retu_resource, 
     233        .num_resources  = ARRAY_SIZE(retu_resource), 
     234        .dev            = { 
     235                .platform_data = &n8x0_retu_data, 
     236        }, 
     237}; 
     238 
     239static struct resource tahvo_resource[] = { 
     240        { 
     241                .start  = -EINVAL, /* set later */ 
     242                .flags  = IORESOURCE_IRQ, 
     243        } 
     244}; 
     245 
     246static struct platform_device tahvo_device = { 
     247        .name           = "tahvo", 
     248        .id             = -1, 
     249        .resource       = tahvo_resource, 
     250        .num_resources  = ARRAY_SIZE(tahvo_resource), 
     251}; 
     252 
     253static struct platform_device tahvo_usb_device = { 
     254        .name           = "tahvo-usb", 
     255        .id             = -1, 
     256}; 
     257 
     258static void __init n8x0_cbus_init(void) 
     259{ 
     260        int             ret; 
     261 
     262        platform_device_register(&n8x0_cbus_device); 
     263 
     264        ret = gpio_request(108, "RETU irq"); 
     265        if (ret < 0) { 
     266                pr_err("retu: Unable to reserve IRQ GPIO\n"); 
     267                return; 
     268        } 
     269 
     270        ret = gpio_direction_input(108); 
     271        if (ret < 0) { 
     272                pr_err("retu: Unable to change gpio direction\n"); 
     273                gpio_free(108); 
     274                return; 
     275        } 
     276 
     277        set_irq_type(gpio_to_irq(108), IRQ_TYPE_EDGE_RISING); 
     278        retu_resource[0].start = gpio_to_irq(108); 
     279        platform_device_register(&retu_device); 
     280 
     281        ret = gpio_request(111, "TAHVO irq"); 
     282        if (ret) { 
     283                pr_err("tahvo: Unable to reserve IRQ GPIO\n"); 
     284                gpio_free(108); 
     285                return; 
     286        } 
     287 
     288        /* Set the pin as input */ 
     289        ret = gpio_direction_input(111); 
     290        if (ret) { 
     291                pr_err("tahvo: Unable to change direction\n"); 
     292                gpio_free(108); 
     293                gpio_free(111); 
     294                return; 
     295        } 
     296 
     297        tahvo_resource[0].start = gpio_to_irq(111); 
     298        platform_device_register(&tahvo_device); 
     299        platform_device_register(&tahvo_usb_device); 
     300} 
     301 
     302#else 
     303static inline void __init n8x0_cbus_init(void) 
     304{ 
     305} 
     306#endif 
     307 
    197308#if defined(CONFIG_MENELAUS) &&                                         \ 
    198309        (defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)) 
    199310 
     
    628739        omap242x_map_common_io(); 
    629740} 
    630741 
    631 static void __init n8x0_init_irq(void) 
     742static void __init n8x0_init_early(void) 
    632743{ 
    633744        omap2_init_common_infrastructure(); 
    634745        omap2_init_common_devices(NULL, NULL); 
    635         omap_init_irq(); 
    636746} 
    637747 
    638748#ifdef CONFIG_OMAP_MUX 
     
    686796static void __init n8x0_init_machine(void) 
    687797{ 
    688798        omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC); 
     799        n8x0_cbus_init(); 
     800 
    689801        /* FIXME: add n810 spi devices */ 
    690802        spi_register_board_info(n800_spi_board_info, 
    691803                                ARRAY_SIZE(n800_spi_board_info)); 
     
    703815 
    704816MACHINE_START(NOKIA_N800, "Nokia N800") 
    705817        .boot_params    = 0x80000100, 
    706         .map_io         = n8x0_map_io, 
    707818        .reserve        = omap_reserve, 
    708         .init_irq       = n8x0_init_irq, 
     819        .map_io         = n8x0_map_io, 
     820        .init_early     = n8x0_init_early, 
     821        .init_irq       = omap_init_irq, 
    709822        .init_machine   = n8x0_init_machine, 
    710823        .timer          = &omap_timer, 
    711824MACHINE_END 
    712825 
    713826MACHINE_START(NOKIA_N810, "Nokia N810") 
    714827        .boot_params    = 0x80000100, 
    715         .map_io         = n8x0_map_io, 
    716828        .reserve        = omap_reserve, 
    717         .init_irq       = n8x0_init_irq, 
     829        .map_io         = n8x0_map_io, 
     830        .init_early     = n8x0_init_early, 
     831        .init_irq       = omap_init_irq, 
    718832        .init_machine   = n8x0_init_machine, 
    719833        .timer          = &omap_timer, 
    720834MACHINE_END 
    721835 
    722836MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") 
    723837        .boot_params    = 0x80000100, 
    724         .map_io         = n8x0_map_io, 
    725838        .reserve        = omap_reserve, 
    726         .init_irq       = n8x0_init_irq, 
     839        .map_io         = n8x0_map_io, 
     840        .init_early     = n8x0_init_early, 
     841        .init_irq       = omap_init_irq, 
    727842        .init_machine   = n8x0_init_machine, 
    728843        .timer          = &omap_timer, 
    729844MACHINE_END 
Note: See TracBrowser for help on using the repository browser.