Chinaunix首页 | 论坛 | 博客
  • 博客访问: 820252
  • 博文数量: 72
  • 博客积分: 3078
  • 博客等级: 少校
  • 技术积分: 942
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 20:10
文章存档

2016年(1)

2015年(33)

2014年(25)

2011年(13)

分类: LINUX

2015-05-27 07:18:39

主要在board.c中增加如下三个函数:

点击(此处)折叠或打开

  1. //added by mango 20150526
  2. //wled_n GPIO35 WLAN_KN_MODE 2b01
  3. //WDT GPIO37 WDT_MODE 1b1
  4. void gpio_init(void)
  5. {
  6.     u32 val;
  7.     printf( "MT7688 gpio init : wled and wdt\n" );
  8.     //set gpio2_mode 1:0=2b01 wled
  9.     val=RALINK_REG(RT2880_SYS_CNTL_BASE+0x64);
  10.     val&=~3;
  11.     val|=1;
  12.     RALINK_REG(RT2880_SYS_CNTL_BASE+0x64)=val;
  13.     //gpio44 output gpio_ctrl_1 bit3=1
  14.     val=RALINK_REG(RT2880_REG_PIODIR+0x04);
  15.     val|=1<<12;
  16.     RALINK_REG(RT2880_REG_PIODIR+0x04)=val;
  17.     //set gpio1_mode 14=1b1    
  18.     val=RALINK_REG(RT2880_SYS_CNTL_BASE+0x60);    
  19.     val|=1<<14;
  20.     RALINK_REG(RT2880_SYS_CNTL_BASE+0x60)=val;
  21.     //gpio38 input gpio_ctrl_1 bit5=0
  22.     val=RALINK_REG(RT2880_REG_PIODIR+0x04);    
  23.     val&=~1<<6;
  24.     RALINK_REG(RT2880_REG_PIODIR+0x04)=val;    
  25. }
  26. void led_on( void )
  27. {
  28.     //gpio44 gpio_dclr_1 644 clear bit12
  29.     RALINK_REG(0xb0000644)=1<<12;
  30. }
  31. void led_off( void )
  32. {
  33.     //gpio44 gpio_dset_1 634 set bit12
  34.     RALINK_REG(0xb0000634)=1<<12;
  35. }
  36. int detect_wps( void )
  37. {
  38.     u32 val;
  39.     val=RALINK_REG(0xb0000624);//624
  40.     if(val&1<<6){
  41.         return 0;
  42.     }
  43.     else{
  44.         printf("wps button pressed!\n");
  45.         return 1;
  46.     }
  47. }


阅读(1897) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册