ILD

qca9563 GPIO
作者:YUAN JIANPENG 邮箱:yuanjp@hust.edu.cn
发布时间:2018-11-11 站点:Inside Linux Development

GPIO基址 0x18040000,共有0-22个GPIO,可以配置成输出或输入。


GPIO_OE 0x18040000 寄存器控制GPIO是输入还是输出。32位寄存器,一位对应一个GPIO,0表示输出,1表示输入。


1 GPIO Output

可以配置成输出128种信号中的一个。用8位存储signal编号,编号0表示普通的输出GPIO,可以控制输出低电平还是高电平。比如 UART1_SOUT的Mux Selection Value是18。复位时,每个GPIO有自己默认的输出类型。


GPIO FUNCTION 0-5,共6个寄存器,控制GPIO 0-22的输出MUX。比如Function 0,控制GPIO 0 -3的输出MUX。


ath> md.l 1804002C 6

1804002c: 21000073 00000020 00000000 00000000    !..s... ........

1804003c: 00000000 00160000    ........


0x16对应MUX Type 22 为UART1 SOUT,Function 5的15:8位为GPIO 21,所以GPIO 21为UART输出脚。


如果一个GPIO作为普通输出GPIO用,首先配置GPIO_OE为输出模式,然后配置Function寄存器,MUX配置为0. 然后通过 GPIO Per Bit Clear (GPIO_CLEAR) 和GPIO Per Bit Set (GPIO_SET) 控制输出的电平。输出电平可以通过GPIO Output Value (GPIO_OUT)读取。


2 GPIO Input

GPIO输入的信号也可以Route到不同的Signal,比如用作UART输入等。但是配置输入模式和配置输出默认不同。配置输入模式是把某个signal配置为某个GPIO的编号。比如:


ath> md.l 18040044 1

18040044: 00001280    ....


15:8 的值为12,则UART输入GPIO为,0x12=GPIO 18


注意

GPIO 15-17 默认用作JTAG信号,如果要用作GPIO第一步要将GPIO FUNCTION 寄存器的 disable jtag 置位。


Copyright © insidelinuxdev.net 2017-2021. Some Rights Reserved.