最新版华为HG255D硬件定义

source:backfire/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-hg255d.c@407

 
 
  •                  
  •                                     
  •                  
  •                
    修订版 4075.4 KB 由lintel在6个月前签入 (diff)

    Ramips:
    *更新HG255D GPIO定义

     
    1 /*
    2  *  HuaWei HG255D board support by lintel
    3  *
    4  *  Copyright (C) 2011 lintel<lintel.huang@gmail.com>
    5  *
    6  *  This program is free software; you can redistribute it and/or modify it
    7  *  under the terms of the GNU General Public License version 2 as published
    8  *  by the Free Software Foundation.
    9  */
    10
    11 #include <linux/init.h>
    12 #include <linux/platform_device.h>
    13 #include <linux/mtd/mtd.h>
    14 #include <linux/mtd/partitions.h>
    15 #include <linux/mtd/physmap.h>
    16 #include <linux/leds.h>
    17 #include <linux/gpio_keys.h>
    18 #include <linux/input.h>
    19
    20 #include <asm/mach-ralink/machine.h>
    21 #include <asm/mach-ralink/dev-gpio-buttons.h>
    22 #include <asm/mach-ralink/dev-gpio-leds.h>
    23 #include <asm/mach-ralink/rt305x.h>
    24 #include <asm/mach-ralink/rt305x_regs.h>
    25
    26 #include "devices.h"
    27
    28 #define HG255D_MTD_PARTITIONS           3  // 1 bootform 0x20000 ,2 bootform 0x40000,3 bootform 0x50000
    29 /*
    30  Note:
    31  GPIO [6:3] is share with SPI interface,so,if use for gpio,must disable the SPI.
    32  see datasheet Page NO.37.
    33  */
    34 #define HG255D_GPIO_BUTTON_RESET        4
    35 #define HG255D_GPIO_BUTTON_WPS          10
    36 #define HG255D_GPIO_BUTTON_WLAN         0
    37
    38 #define HG255D_GPIO_LED_POWER           8
    39 #define HG255D_GPIO_LED_USB             9
    40 #define HG255D_GPIO_LED_INTERNET        13
    41 #define HG255D_GPIO_LED_WLAN            14
    42 #define HG255D_GPIO_LED_WPS             12
    43 #define HG255D_GPIO_LED_VOICE           5
    44
    45
    46 #define HG255D_BUTTONS_POLL_INTERVAL    20
    47
    48 #define BLOCK_SZ_128K   0x00020000
    49
    50
    51 #ifdef CONFIG_MTD_PARTITIONS
    52 #if (HG255D_MTD_PARTITIONS == 1)
    53 static struct mtd_partition hg255d_partitions[] = {
    54  
    55         {
    56                 .name   = "u-boot",
    57                 .offset = 0,
    58                 .size   = 0x020000,
    59 //              .mask_flags = MTD_WRITEABLE,
    60         }, {
    61                 .name   = "kernel",
    62                 .offset = 0x0020000,
    63                 .size   = 0x0100000,
    64         }, {
    65                 .name   = "rootfs",
    66                 .offset = 0x0120000,
    67                 .size   = 0x06e0000,
    68         }, {
    69                 .name   = "firmware",
    70                 .offset = 0x0020000,
    71                 .size   = 0x07e0000,
    72         }, {
    73                 .name   = "factory",
    74                 .offset = 0x0fa0000,
    75                 .size   = 0x0020000,
    76 //              .mask_flags = MTD_WRITEABLE,
    77         }, {
    78                 .name   = "fullflash",
    79                 .offset = 0x000000,
    80                 .size   = 0x01000000,
    81         }
    82 };
    83 #elif (HG255D_MTD_PARTITIONS == 2)
    84 static struct mtd_partition hg255d_partitions[] = {
    85  
    86  
    87         {
    88                 .name   = "u-boot",
    89                 .offset = 0,
    90                 .size   = 0x040000,
    91 //              .mask_flags = MTD_WRITEABLE,
    92         }, {
    93                 .name   = "kernel",
    94                 .offset = 0x040000,
    95                 .size   = 0x100000,
    96         }, {
    97                 .name   = "rootfs",
    98                 .offset = 0x140000,
    99                 .size   = 0x600000,
    100         }, {
    101                 .name   = "firmware",
    102                 .offset = 0x040000,
    103                 .size   = 0xe60000,
    104         }, {
    105                 .name   = "factory",
    106                 .offset = 0x0fa0000,
    107                 .size   = 0x0020000,
    108 //              .mask_flags = MTD_WRITEABLE,
    109         }, {
    110                 .name   = "fullflash",
    111                 .offset = 0x000000,
    112                 .size   = 0xfa0000,
    113  
    114         } 
    115  
    116 };
    117
    118 #elif (HG255D_MTD_PARTITIONS == 3)
    119 static struct mtd_partition hg255d_partitions[] = {
    120  
    121         {
    122                 .name   = "u-boot",
    123                 .offset = 0,
    124                 .size   = 0x040000,
    125 //              .mask_flags = MTD_WRITEABLE,
    126         }, {
    127                 .name   = "kernel",
    128                 .offset = 0x0050000,
    129                 .size   = 0x0100000,
    130         }, {
    131                 .name   = "rootfs",
    132                 .offset = 0x0150000,
    133                 .size   = 0x0e50000,
    134         }, {
    135                 .name   = "firmware",
    136                 .offset = 0x0040000,
    137                 .size   = 0x0f60000,
    138         }, {
    139                 .name   = "factory",
    140                 .offset = 0x0fa0000,
    141                 .size   = 0x0020000,
    142 //              .mask_flags = MTD_WRITEABLE,
    143         }, {
    144                 .name   = "fullflash",
    145                 .offset = 0x000000,
    146                 .size   = 0x01000000,
    147         }
    148 };
    149
    150 #endif /* CONFIG_MTD_PARTITIONS */
    151 #endif /* CONFIG_MTD_PARTITIONS */
    152
    153 static struct physmap_flash_data hg255d_flash_data = {
    154 #ifdef CONFIG_MTD_PARTITIONS
    155         .nr_parts       = ARRAY_SIZE(hg255d_partitions),
    156         .parts          = hg255d_partitions,
    157 #endif
    158 };
    159  
    160 static struct gpio_led hg255d_led_pins[] = {
    161         {
    162                 .name           = "hg255d:power",
    163                 .gpio           = HG255D_GPIO_LED_POWER,
    164                 .active_low     = 1,
    165                 .default_trigger= "default-on",
    166         }, {
    167                 .name           = "hg255d:internet",
    168                 .gpio           = HG255D_GPIO_LED_INTERNET,
    169                 .active_low     = 1,
    170         }, {
    171                 .name           = "hg255d:wlan",
    172                 .gpio           = HG255D_GPIO_LED_WLAN,
    173                 .active_low     = 1,
    174         }, {
    175                 .name           = "hg255d:usb",
    176                 .gpio           = HG255D_GPIO_LED_USB,
    177                 .active_low     = 1,
    178         }, {
    179                 .name           = "hg255d:wps",
    180                 .gpio           = HG255D_GPIO_LED_WPS,
    181                 .active_low     = 1,
    182         }
    183 };
    184  
    185 static struct gpio_led_platform_data hg255d_led_data = {
    186         .leds           = hg255d_led_pins,
    187         .num_leds       = ARRAY_SIZE(hg255d_led_pins),
    188 };
    189  
    190 static struct platform_device hg255d_leds = {
    191         .name   = "leds-gpio",
    192         .id     = -1,
    193         .dev    = {
    194                 .platform_data  = &hg255d_led_data,
    195         }
    196 };
    197  
    198  
    199 static struct gpio_keys_button hg255d_buttons[] = {
    200         {
    201                 .desc           = "BTN_0",
    202                 .type           = EV_KEY,
    203                 .code           = BTN_0,
    204                 .gpio           = HG255D_GPIO_BUTTON_WLAN,
    205                 .active_low     = 1,
    206                 .debounce_interval = 100,
    207         }, {
    208                 .desc           = "BTN_1",
    209                 .type           = EV_KEY,
    210                 .code           = BTN_1,
    211                 .gpio           = HG255D_GPIO_BUTTON_WPS,
    212                 .active_low     = 1,
    213                 .debounce_interval = 100,
    214         }
    215  
    216 };
    217  
    218  
    219 static struct gpio_keys_platform_data hg255d_button_data = {
    220         .buttons        = hg255d_buttons,
    221         .nbuttons       = ARRAY_SIZE(hg255d_buttons),
    222 };
    223  
    224 static struct platform_device hg255d_button_device = {
    225         .name           = "gpio-keys",
    226         .id             = -1,
    227         .num_resources  = 0,
    228         .dev            = {
    229                 .platform_data  = &hg255d_button_data,
    230         }
    231 };
    232  
    233  
    234 static void __init hg255d_init(void)
    235 {
    236         rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT);
    237  
    238         rt305x_register_flash(0, &hg255d_flash_data);
    239  
    240         //ramips_register_gpio_leds(-1, ARRAY_SIZE(hg255d_leds_gpio),
    241         //                        hg255d_leds_gpio);
    242         platform_device_register(&hg255d_leds);
    243  
    244         //ramips_register_gpio_buttons(-1, HG255D_BUTTONS_POLL_INTERVAL,
    245         //                           ARRAY_SIZE(hg255d_gpio_buttons),
    246         //                           hg255d_gpio_buttons);
    247         platform_device_register(&hg255d_button_device);
    248  
    249         rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_WLLLL;
    250         rt305x_register_ethernet();
    251         rt305x_register_wifi();
    252         rt305x_register_wdt();
    253         rt305x_register_usb();
    254         rt305x_register_gpiodev();
    255 }
    256  
    257 MIPS_MACHINE(RAMIPS_MACH_HG255D, "HG255D", "HuaWei HG255D",
    258              hg255d_init);


    • 0
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    华为HG255d刷机工具及固件大全.zip是一个包含华为HG255d路由器刷机工具和固件的压缩文件。刷机工具和固件是为了提高华为HG255d路由器的性能和功能而开发的。 刷机是指将原始的固件替换为更新版本的过程,这样可以解锁更多的功能,并修复一些可能存在的问题。刷机工具是用来执行这个过程的软件。 固件是路由器上运行的操作系统,它控制着路由器的各种功能,如连接、安全性和设置等。对于华为HG255d路由器,固件的更新可以提高其稳定性和性能,修复安全漏洞,并增加新的功能。 华为HG255d刷机工具及固件大全.zip将刷机工具和各种固件收集在一起,方便用户根据自己的需求选择适合的固件进行刷机。这样用户可以根据自己的需求选择固件版本,如稳定版、测试版或者其他自定义版本。 在使用刷机工具和固件时,需要注意以下几点: 1. 刷机有一定的风险,如果操作不当可能会造成设备损坏,建议在充分了解刷机过程和风险的情况下进行操作。 2. 在刷机之前,应备份好路由器上的重要数据以防丢失。 3. 如果不确定如何选择固件版本或者如何操作,请参考相关的刷机教程或者咨询专业人士的意见。 总之,华为HG255d刷机工具及固件大全.zip是一个便捷的资源,可以帮助用户提升华为HG255d路由器的性能和功能。但在使用之前请注意一些风险和注意事项。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值