博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
am335x Linux kernel DTS pinmux 定义记录
阅读量:5201 次
发布时间:2019-06-13

本文共 2319 字,大约阅读时间需要 7 分钟。

记录am335x TI PDK3.0 Linux Kernel 设备的pinmux 的配置

在TI 的Linux kernel 设备树里面,有很多关于pinctrl-single,pins 的配置,

我一直搞不懂这些配置的地址是怎么来,今天问了群的大牛终于得出了答案。

  • 大概跟了一下相关的代码,有如下:
/*  arch/arm/boot/dts/am33xx.dtsi */            scm: scm@210000 {                compatible = "ti,am3-scm", "simple-bus";                reg = <0x210000 0x2000>;                #address-cells = <1>;                #size-cells = <1>;                ranges = <0 0x210000 0x2000>;                am33xx_pinmux: pinmux@800 {                    compatible = "pinctrl-single";                    reg = <0x800 0x238>;     //  从0x800开始                    #address-cells = <1>;                    #size-cells = <0>;                    pinctrl-single,register-width = <32>;                    pinctrl-single,function-mask = <0x7f>;                };
上面的这份DTS的代码中,他规定了寄存器是从0x800 开始,    所以在             AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual (Rev.pdf            9.3 CONTROL_MODULE Registers  有相关的地址标示,    但是在 `*.dts ` 里面的代码是偏移了 0x800 的地址的,所以有如下代码:
nandflash_pins_s0: nandflash_pins_s0 {       pinctrl-single,pins = <          0x0 (PIN_INPUT_PULLUP | MUX_MODE0)  /* gpmc_ad0.gpmc_ad0 */          0x4 (PIN_INPUT_PULLUP | MUX_MODE0)  /* gpmc_ad1.gpmc_ad1 */          0x8 (PIN_INPUT_PULLUP | MUX_MODE0)  /* gpmc_ad2.gpmc_ad2 */          0xc (PIN_INPUT_PULLUP | MUX_MODE0)  /* gpmc_ad3.gpmc_ad3 */          0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */          0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */          0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */          0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */          0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */          0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */          0x7c (PIN_OUTPUT | MUX_MODE0)       /* gpmc_csn0.gpmc_csn0  */          0x90 (PIN_OUTPUT | MUX_MODE0)       /* gpmc_advn_ale.gpmc_advn_ale */          0x94 (PIN_OUTPUT | MUX_MODE0)       /* gpmc_oen_ren.gpmc_oen_ren */          0x98 (PIN_OUTPUT | MUX_MODE0)       /* gpmc_wen.gpmc_wen */          0x9c (PIN_OUTPUT | MUX_MODE0)       /* gpmc_be0n_cle.gpmc_be0n_cle */      >;  };
  • 对应的TRM描述如下所示:、

991711-20170316144119323-203234933.png

  • 对应的模式的设置要查看 AM335x ARM® Cortex™-A8 微处理器(MPU) 这一份datasheet, 找到对应的MODE,设置属于你自己模式。

转载于:https://www.cnblogs.com/chenfulin5/p/6559405.html

你可能感兴趣的文章
doc.documentElement.scrollTop&&doc.body.scrollTop
查看>>
关于Keil uVision3与Keil uVision4同时安装的几个问题
查看>>
了解计算机的硬件发展
查看>>
C# 表达式与运算符(转)
查看>>
消息循环
查看>>
用UL标签+CSS实现的柱状图
查看>>
Linux 终端命令大全
查看>>
double 四舍五入三位
查看>>
js:语言精髓笔记3----语句
查看>>
C#实现二叉查找树
查看>>
Git的Patch功能
查看>>
c#进程传参
查看>>
字典操作
查看>>
DSOFramerControl简单使用
查看>>
置信规则库学习笔记(一)
查看>>
【2017下集美大学软件工程1413软工实践_助教博客】 第0次作业成绩公示
查看>>
Looksery Cup 2015 F - Yura and Developers 单调栈+启发式合并
查看>>
项目工作总结(2017-02-15~07.01)
查看>>
webAPI 上传文件 404错误(转载)
查看>>
clean code笔记
查看>>