linux设备树文件夹,linux设备树文件(dtb)

linux 自内核3.x之后引入设备树的概念.而不像2.6时代在arch/arm/mach-s2440.c添加修改设备信息。

(推荐一下宋宝华的《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,奉劝各位正学习嵌入式linux的在校学生也要与时俱进)

我使用的设备是beagleboard X15(芯片am5728)

下面是开启uart,i2c ,spi,can等外设的脚本,仅供参考。配置设备树推荐ti 的工具Pinmux

&dra7_pmx_core {

//系统自带

gpio_keys_pins_default: gpio_keys_pins_default {

pinctrl-single,pins = <

DRA7XX_CORE_IOPAD(0x358C, PIN_INPUT_PULLUP | MUX_MODE14)/* cam0_field.gpio4_2 */

>;

};

myuart1_pins_default: myuart1_pins_default {

pinctrl-single,pins = <

DRA7XX_CORE_IOPAD(0x37E0, PIN_INPUT | MUX_MODE0)

DRA7XX_CORE_IOPAD(0x37E4, PIN_INPUT | MUX_MODE0)

>;

};

//系统自带

//Tag : 开启uart10

//0x3570,0x3574为物理地址,MUX_MODE8为引脚映射模式8,这些需要通过ti 的工具Pinmux

myuart10_pins_default: myuart10_pins_default {

pinctrl-single,pins = <

DRA7XX_CORE_IOPAD(0x3570, (PIN_INPUT_PULLUP | MUX_MODE8)) /* vin2a_d2.uart10_rxd */

DRA7XX_CORE_IOPAD(0x3574, (PIN_OUTPUT_PULLUP | MUX_MODE8)) /* vin2a_d3.uart10_txd */

>;

};

//Tag : 开启i2c5

i2c5_pins_default:i2c5_pins_default{

pinctrl-single,pins = <

DRA7XX_CORE_IOPAD(0x3744, PIN_INPUT_PULLUP | PIN_INPUT_SLEW |MUX_MODE4) // i2c5_sda aa3

DRA7XX_CORE_IOPAD(0x3748, PIN_INPUT_PULLUP |PIN_INPUT_SLEW | MUX_MODE4) // i2c5 scl ab9

>;

};

//Tag : can1

dcan1_pins_default: dcan1_pins_default {

pinctrl-single,pins = <

DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0)// dcan1_tx

DRA7XX_CORE_IOPAD(0x37d4, PIN_INPUT_PULLUP | MUX_MODE0)// dcan1_rx

>;

};

dcan1_pins_sleep: dcan1_pins_sleep {

pinctrl-single,pins = <

DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP)// dcan1_tx.off

DRA7XX_CORE_IOPAD(0x37d4, MUX_MODE15 | PULL_UP)// dcan1_rx.off

>;

};

};

重要:配置can通信"default", "sleep", "active"三个模式都要配置。我试过就是直接配置active,结果试了一天,can都无法正常通信。切记

&uart10 {

pinctrl-names = "default";

pinctrl-0 = ;

status = "okay";

};

&i2c5 {

status = "okay";

pinctrl-names = "default";

pinctrl-0 = ;

clock-frequency = <400000>;

};

//Tag : 配置 spi,

//compatible为匹配驱动

&mcspi3 {

pinctrl-names = "default";

status = "okay";

spidev@0{

compatible = "spidev";

spi-max-frequency = <48000000>;

reg = <0>;

status = "okay";

spi-cpol; spi-cpha;

};

};

&mcspi4 {

pinctrl-names = "default";

status = "okay";

spidev@0 {

compatible = "spidev";

spi-max-frequency = <48000000>;

reg = <0>;

status = "okay";

spi-cpol; spi-cpha;

};

};

//Tag : 配置can通信

&dcan1 {

status = "okay";

pinctrl-names = "default", "sleep", "active";

pinctrl-0 = ;

pinctrl-1 = ;

pinctrl-2 = ;

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值