技术专栏
全志平台uboot中GPIO和PIN脚配置说明
1. 前言
这里描述uboot中关于GPIO和PIN脚配置的修改;
以及dts中的规则说明
2.port接口对应数字编号
#define PA 0
#define PB 1
#define PC 2
#define PD 3
#define PE 4
#define PF 5
#define PG 6
#define PH 7
#define PI 8
#define PJ 9
#define PK 10
#define PL 11
#define PM 12
#define PN 13
#define PO 14
#define PP 15
3. Sysconfig中描述gpio的形式
Sysconfig中描述gpio的形式:
Port:端口+组内序号<功能分配><内部电阻状态><驱动能力><输出电平状态>
4. Pin配置说明
Pinctrl节点分为cpux和cpus,对应的节点路径如下:
Cpux : /soc/pinctrl@xx
Cpus: /soc/pinctrl@xx
(1)查看PIN配置
a. PIN配置属性字段说明
<allwinner,function>对应于sysconfig中的主键名
<allwinner,pins>对应于sysconfig中每个gpio配置中的端口名.
<allwinner,pname>对应于sysconfig中主键下面子键名字
<allwinner,muxsel>, <allwinner,pull>,<allwinner,drive>,<allwinner,data>这些属性分别表示<功能分配><内部电阻状态><驱动能力><输出电平状态>
b. 查看cpux的PIN配置
sunxi#fdt list /soc/pinctrl@01c20800/lcd0
lcd0@0 {
linux,phandle = <0x000000ab>;
phandle = <0x000000ab>;
allwinner,pins = "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21";
allwinner,function = "lcd0";
allwinner,pname = "lcdd0", "lcdd1", "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd8", "lcdd9";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0x00000000>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
c.查看CPUS的PIN配置
查看s_uart0的PIN配置
sunxi#fdt list /soc/pinctrl@01f02c00/s_uart0
s_uart0@0 {
linux,phandle = <0x000000b4>;
phandle = <0x000000b4>;
allwinner,pins = "PL2", "PL3";
allwinner,function = "s_uart0";
allwinner,pname = "s_uart0_tx", "s_uart0_rx";
allwinner,muxsel = <0x00000002>;
allwinner,pull = <0xffffffff>;
allwinner,drive = <0xffffffff>;
allwinner,data = <0xffffffff>;
};
(2)修改PIN配置
使用fdt set命令可以修改PIN中相关属性字段
unxi#fdt set /soc/pinctrl@01c20800/lcd0 allwinner,drive <0x1>
sunxi#fdt list /soc/pinctrl@01c20800/lcd0
lcd0@0 {
linux,phandle = <0x000000ab>;
phandle = <0x000000ab>;
allwinner,pins = "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19", "PD20", "PD21";
allwinner,function = "lcd0";
allwinner,pname = "lcdd0", "lcdd1", "lcdd2", "lcdd3", "lcdd4", "lcdd5", "lcdd6", "lcdd7", "lcdd8", "lcdd9";
allwinner,muxsel = <0x00000003>;
allwinner,pull = <0x00000000>;
allwinner,drive = <0x00000001>;
allwinner,data = <0xffffffff>;
};
5. GPIO配置说明
(1)Device tree和sysconfig.fex中GPIO对应关系
以usb中usb_id_gpio为例
sunxi#fdt list /soc/usbc0
usbc0@0 {
test = <0x00000002 0x00000003 0x12345678>;
device_type = "usbc0";
compatible = "allwinner,sun50i-otg-manager";
........
usb_serial_unique = <0x00000000>;
usb_serial_number = "20080411";
rndis_wceis = <0x00000001>;
status = "okay";
usb_id_gpio = <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0xffffffff 0xffffffff>;
};
usb_id_gpio = port:PH09<0><1><default><default>
对应于device tree中
usb_id_gpio = <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0xffffffff 0xffffffff>
由上面描述, 端口PH 组内序号 功能分配 内部电阻状态 驱动能力 输出电平
(2)修改GPIO配置
果需要修改 usb_id_gpio的配置,可按如下方式
sunxi#fdt set /soc/usbc0 usb_id_gpio <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0x2 0x1>
sunxi#fdt list
usbc0@0 {
test = <0x00000002 0x00000003 0x12345678>;
device_type = "usbc0";
compatible = "allwinner,sun50i-otg-manager";
........
usb_serial_unique = <0x00000000>;
usb_serial_number = "20080411";
rndis_wceis = <0x00000001>;
status = "okay";
usb_id_gpio = <0x00000030 0x00000007 0x00000009 0x00000000 0x00000001 0x00000002 0x00000001>; //修改ok
};
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
15
7
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:5738次2020-10-13 17:14:09
-
浏览量:8419次2020-11-26 14:22:19
-
浏览量:6744次2020-09-28 16:30:39
-
浏览量:9512次2020-09-28 16:42:40
-
浏览量:6087次2020-10-21 16:08:13
-
浏览量:4246次2020-09-23 19:01:05
-
浏览量:8369次2021-01-20 17:04:49
-
浏览量:7143次2021-01-16 14:52:44
-
浏览量:10150次2021-01-22 16:07:20
-
浏览量:6068次2020-12-25 16:29:18
-
浏览量:11329次2020-12-16 19:13:45
-
浏览量:10998次2020-12-16 18:56:54
-
浏览量:6947次2021-01-22 15:28:47
-
浏览量:1966次2020-12-30 16:54:40
-
浏览量:6694次2020-12-19 15:34:44
-
浏览量:5158次2020-12-19 16:14:06
-
浏览量:5605次2021-04-12 16:15:46
-
浏览量:6519次2021-01-08 15:16:17
-
浏览量:7981次2021-01-08 15:04:53
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注