GPIO
来源:互联网 发布:交通流量预测软件 编辑:程序博客网 时间:2024/05/17 08:35
1 amlogic平台
1.1 uboot
1.1.1 串口
1.1.1.1 读
gpio status [-a] [<bank> | <pin>] - show [all/claimed] GPIOs
如,读取GPIOX_6的状态
# gpio status -a GPIOX_6
1.1.1.2 写
gpio <input|set|clear|toggle> <pin> - input/set/clear/toggle the specified pin
如,设置GPIOX_6输出高电平
# gpio set GPIOX_6
1.1.2 代码
//oen_reg, oen_bit, out_reg, out_bit,in_reg, in_bit {AO_GPIO_O_EN_N, 0, AO_GPIO_O_EN_N, 16, AO_GPIO_I, 0, }, //GPIOAO {PREG_PAD_GPIO2_EN_N, 0, PREG_PAD_GPIO2_O, 0, PREG_PAD_GPIO2_I, 0, }, //BOOT {PREG_PAD_GPIO2_EN_N, 20, PREG_PAD_GPIO2_O, 20, PREG_PAD_GPIO2_I, 20,}, //CARD {PREG_PAD_GPIO0_EN_N, 0, PREG_PAD_GPIO0_O, 0, PREG_PAD_GPIO0_I, 0, }, //GPIODV {PREG_PAD_GPIO3_EN_N, 0, PREG_PAD_GPIO3_O, 0, PREG_PAD_GPIO3_I, 0, }, //GPIOZ {PREG_PAD_GPIO1_EN_N, 20, PREG_PAD_GPIO1_O, 20, PREG_PAD_GPIO1_I, 20,}, //GPIOH {PREG_PAD_GPIO4_EN_N, 0, PREG_PAD_GPIO4_O, 0, PREG_PAD_GPIO4_I, 0, }, //GPIOX {PREG_PAD_GPIO3_EN_N, 24, PREG_PAD_GPIO3_O, 24, PREG_PAD_GPIO3_I, 24,} //GPIOCLK
1.1.2.1 读
readl(addr)
如,读取GPIOX_6的状态
if((readl(PREG_PAD_GPIO4_I) & (1<<6))) { uart_puts("111111111111111111\n"); } else { uart_puts("000000000000000000\n"); }
或
#include <asm/gpio.h>int gpio_direction_input(unsigned gpio)int gpio_get_value(unsigned gpio)
如,读取GPIOX_6的状态
gpio_direction_input(6);gpio_get_value(6);
1.1.2.2 写
如,设置GPIOX_6输出高电平
aml_update_bits(PREG_PAD_GPIO4_EN_N, 1<<6, 0); /* 设置GPIOX_6输出状态 */aml_update_bits(PREG_PAD_GPIO4_O, 1<<6, 1); /* 设置GPIOX_6输出高电平 */
或
int gpio_direction_output(unsigned gpio, int value)
如,设置GPIOX_6输出高电平
gpio_request(6, "wlan");gpio_direction_output(6, 1);
1.2 kernel
1.2.1 串口
# cat /sys/kernel/debug/gpio
1.2.2 代码
1.2.2.1 读
#include <asm/gpio.h>int gpio_direction_input(unsigned gpio)int gpio_get_value(unsigned gpio)
如,读取GPIOX_6的状态
gpio_direction_input(6);gpio_set_pullup(6 , 1); //上拉电阻gpio_get_value(6);
1.2.2.2 写
int gpio_direction_output(unsigned gpio, int value)
如,设置GPIOX_6输出高电平
gpio_request(6, "wlan");gpio_direction_output(6, 1);
2 GPIO表
amlogic Bank
2.1 GPIOX_
GPIOX_0 0 234GPIOX_1 1 235GPIOX_2 2 236GPIOX_3 3 237GPIOX_4 4 238GPIOX_5 5 239GPIOX_6 6 240GPIOX_7 7 241GPIOX_8 8 242GPIOX_9 9 243GPIOX_10 10 244GPIOX_11 11 245GPIOX_12 12 246GPIOX_13 13 247GPIOX_14 14 248GPIOX_15 15 249GPIOX_16 16 250GPIOX_17 17 251GPIOX_18 18 252
2.2 GPIODV_
GPIODV_0 19 204GPIODV_1 20 205GPIODV_2 21 206GPIODV_3 22 207GPIODV_4 23 208GPIODV_5 24 209GPIODV_6 25 210GPIODV_7 26 211GPIODV_8 27 212GPIODV_9 28 213GPIODV_10 29 214GPIODV_11 30 215GPIODV_12 31 216GPIODV_13 32 217GPIODV_14 33 218GPIODV_15 34 219GPIODV_16 35 220GPIODV_17 36 221GPIODV_18 37 222GPIODV_19 38 223GPIODV_20 39 224GPIODV_21 40 225GPIODV_22 41 226GPIODV_23 42 227GPIODV_24 43 228GPIODV_25 44 229GPIODV_26 45 230GPIODV_27 46 231GPIODV_28 47 232GPIODV_29 48 233
2.3 GPIOH_
GPIOH_0 49 171GPIOH_1 50 172GPIOH_2 51 173GPIOH_3 52 174GPIOH_4 53 175GPIOH_5 54 176GPIOH_6 55 177GPIOH_7 56 178GPIOH_8 57 179GPIOH_9 58 180
2.4 GPIOZ_
GPIOZ_0 59 155GPIOZ_1 60 156GPIOZ_2 61 157GPIOZ_3 62 158GPIOZ_4 63 159GPIOZ_5 64 160GPIOZ_6 65 161GPIOZ_7 66 162GPIOZ_8 67 163GPIOZ_9 68 164GPIOZ_10 69 165GPIOZ_11 70 166GPIOZ_12 71 167GPIOZ_13 72 168GPIOZ_14 73 169GPIOZ_15 74 170
2.5 CARD_
CARD_0 75 CARD_1 76 CARD_2 77 CARD_3 78 CARD_4 79 CARD_5 80 CARD_6 81
2.6 BOOT_
BOOT_0 82 BOOT_1 83 BOOT_2 84 BOOT_3 85 BOOT_4 86 BOOT_5 87 BOOT_6 88 BOOT_7 89 BOOT_8 90 BOOT_9 91 BOOT_10 92 BOOT_11 93 BOOT_12 94 BOOT_13 95 BOOT_14 96 BOOT_15 97
2.7 GPIOCLK_
GPIOCLK_0 98GPIOCLK_1 99
2.8 GPIOAO_
GPIOAO_0 100 145GPIOAO_1 101 146GPIOAO_2 102 147GPIOAO_3 103 148GPIOAO_4 104 149GPIOAO_5 105 150GPIOAO_6 106 151GPIOAO_7 107 152GPIOAO_8 108 153GPIOAO_9 109 154
3 开机读取寄存器值
Base_adr:0xc8834400Final_adr = base_adr + num *4gpioDV_11~0 : GPIO_REG0[11:0]GPIO_REG0_EN_N0x0c ------ 0xc8834430GPIO_REG 0_O0x0d ------ 0xc8834434GPIO_REG 0_I0x0e ------ 0xc8834438PINMUX_REG2 ------ 0xc88344b8
3.1 Pin Mux Registers
PERIPHS_PIN_MUX_0 0xc88344b0 (0xc8834400 + (0x2c << 2))PERIPHS_PIN_MUX_1 0xc88344b4 (0xc8834400 + (0x2d << 2))PERIPHS_PIN_MUX_2 0xc88344b8 (0xc8834400 + (0x2e << 2))PERIPHS_PIN_MUX_3 0xc88344bc (0xc8834400 + (0x2f << 2))PERIPHS_PIN_MUX_4 0xc88344c0 (0xc8834400 + (0x30 << 2))PERIPHS_PIN_MUX_5 0xc88344c4 (0xc8834400 + (0x31 << 2))PERIPHS_PIN_MUX_6 0xc88344c8 (0xc8834400 + (0x32 << 2))PERIPHS_PIN_MUX_7 0xc88344cc (0xc8834400 + (0x33 << 2))PERIPHS_PIN_MUX_8 0xc88344d0 (0xc8834400 + (0x34 << 2))PERIPHS_PIN_MUX_9 0xc88344d4 (0xc8834400 + (0x35 << 2))AO_RTI_PIN_MUX_REG 0xc8100014 (0xc8100000 + (0x05 << 2))AO_RTI_PIN_MUX_REG2 0xc8100018 (0xc8100000 + (0x06 << 2))
3.2 Gpio Registers
GPIOAO_9~0
OEN 0xc8834424 (0xc8834400 + (0x09 << 2))OUT 0xc8834424 (0xc8834400 + (0x09 << 2))IN 0xc8834428 (0xc8834400 + (0x0a << 2))
GPIODV_29~0
OEN 0xC8834430 (0xc8834400 + (0x0c << 2))OUT 0xC8834434 (0xc8834400 + (0x0d << 2))IN 0xC8834438 (0xc8834400 + (0x0e << 2))
GPIOH_9~0
OEN 0xC883443c (0xc8834400 + (0x0f << 2))OUT 0xC8834440 (0xc8834400 + (0x10 << 2))IN 0xC8834444 (0xc8834400 + (0x11 << 2))
BOOT_15~0
OEN 0xC8834448 (0xc8834400 + (0x12 << 2))OUT 0xC883444c (0xc8834400 + (0x13 << 2))IN 0xC8834450 (0xc8834400 + (0x14 << 2))
CARD_6~0
OEN 0xC8834448 (0xc8834400 + (0x12 << 2))OUT 0xC883444c (0xc8834400 + (0x13 << 2))IN 0xC8834450 (0xc8834400 + (0x14 << 2))
GPIOZ_15~0
OEN 0xC8834454 (0xc8834400 + (0x15 << 2))OUT 0xC8834458 (0xc8834400 + (0x16 << 2))IN 0xC883445c (0xc8834400 + (0x17 << 2))
GPIOCLK_1~0
OEN 0xC8834454 (0xc8834400 + (0x15 << 2))OUT 0xC8834458 (0xc8834400 + (0x16 << 2))IN 0xC883445c (0xc8834400 + (0x17 << 2))
GPIOX_18~0
OEN 0xC8834460 (0xc8834400 + (0x18 << 2))OUT 0xC8834464 (0xc8834400 + (0x19 << 2))IN 0xC8834468 (0xc8834400 + (0x1a << 2))
3.3 查询
如,查询GPIOX_6、GPIOX_7输出状态
$ echo 0xC8834460 > /sys/kernel/debug/aml_reg/paddr$ cat /sys/kernel/debug/aml_reg/paddr[0xc8834460] = 0xFFFFFFBF
$ echo 0xC8834464 > /sys/kernel/debug/aml_reg/paddr$ cat /sys/kernel/debug/aml_reg/paddr[0xc8834464] = 0xFFFFFFBF
$ echo 0xC8834468 > /sys/kernel/debug/aml_reg/paddr$ cat /sys/kernel/debug/aml_reg/paddr[0xc8834468] = 0x472BF
GPIOX_6:输出状态,输出为0,低电平
GPIOX_7:输入状态,输入为1,高电平
,如下图示
阅读全文
0 0
- gpio
- gpio
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- GPIO
- gpio
- GPIO
- gpio
- GPIO
- gpio
- GPIO
- gpio
- SQL Server数据库Date类型字段JAVA提取少两天
- java.lang.IllegalStateException异常产生的原因及解决办法
- session与cookie有效时间
- IT风投于中国IT风投简析
- 条形码的检测与识别
- GPIO
- java 动态绑定与静态绑定
- Apache服务器性能监控
- java正则表达式验证邮箱、IP地址、手机号码
- android_快捷注释
- appium学习资料
- proxychains挂了 最近因为seccomp prevented execution of syscall
- Centos7更换阿里云yum源
- android MediaPlayer播放音视频流程