AM335x使用

am335x增加按键:
修改dts
编译成dtb
替换sd卡里的dtb文件烧写系统

设备节点 例子参考https://blog.csdn.net/weixin_33962923/article/details/85783144 


uboot 查看dts文件:

fdt addr 88000000
fdt print
fdt head 查看头

查看系统下面有哪些设备树节点:
# ls /sys/firmware
devicetree fdt

查看节点和节点名字 标签等:

cd /sys/fireware/base/

ls 可以看到多个节点。一个节点对应一个文件夹。



# ./button_test /dev/led0 读按键

定义
G PIO Controller 是芯片厂家的事,我们怎么引用某个引脚呢 ?在自己的设备节点中使用属性
"[< name>--] gpios",示例如下

gpios=<&gpio5 3 GPIO_ACTIVE_LOW>

或者 reset-gpios=<&gpio5 3 GPIO_ACTIVE_LOW>



同级别的设备树下(相同级别的子节点)节点名要唯一,也就是同级别的子节点的节点名可以相同,但是要求 “单元 地址”不同。
比如

led@0 {
compatible = "leddrv";
pin = <GROUP_PIN(3, 1)>;
led@1 {
compatible = "leddrv";
pin = <GROUP_PIN(5, 8)>;

 

如何查看 input/event 下面的设备。
cat /proc/bus/input/devices
例如
# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="mykeys@0"
P: Phys=gpio-keys/input0
S: Sysfs=/devices/platform/mykeys@0/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=100003
B: KEY=80000 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="ti-tsc"
P: Phys=
S: Sysfs=/devices/platform/ocp/44e0d000.tscadc/TI-am335x-tsc/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003

可以看出 mykeys@0 在input0下面

按键dts配置

设备树节点

  • gpio_keys: mykeys@0 {
    compatible = "gpio-keys";
    #address-cells = <1>;
    #size-cells = <0>;
    autorepeat; //重复上报

    switch@1 {
    label = "reset_to_factory"; //恢复出厂设置
    linux,code = <115>;
    gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
    gpio-key,wakeup;
    };
    }

  • pinctrl节点

  • pinctrl-names = "default";
    pinctrl-0 = <&gpio_keys_pins>;
    gpio_keys_pins: gpio_keys_pins {
    pinctrl-single,pins = <
    0x21c ( PIN_INPUT | MUX_MODE7 ) /* (F16) USB0_DRVVBUS.gpio0[18] */
    >;
    };

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值