美文网首页BB-black开发板[Linux arm-v8]
Linux基于pinctrl的LED控制—Apple的学习笔记

Linux基于pinctrl的LED控制—Apple的学习笔记

作者: applecai | 来源:发表于2020-05-23 17:26 被阅读0次

    一,前言

    上一篇blog中驱动开发环境都搭建好了,我需要先复习下设备树的一些属性。最简单的就是先控制一个LED灯。bb-black有4个用户灯,其中有一个是kernel的心跳灯gpio1-21,我先将其disable,然后作为我将使用的led资源。

    我当前制作的Ubuntu18.04中驱动和应用代码路径:/home/applecai/mydriver/AppleLED/。代码就不贴了,关于驱动代码就是基本框架中使用of_xxx函数,也不需要添加中断或者锁相关的内容。因为一个资源之后只有一个app在使用,为什么这样说,因为app是我写的,哈哈!app控制就更加简单了,仅仅open,write,close而已。因为我的主要目的是复习下设备树,看了些资料回顾了下,又想起来了。那就开工咯~

    二,修改设备树

    基于原理图先查看了我需要使用的是gpio1_21引脚,设置为高电平则灯亮,设置为低电平则灯灭。然后通过UM中的数据来查看和修改设备树信息。
    先要看懂原来的,才可以修改,通过搜索pinctrl查到原来的设置如下。能和UM信息对应上。
    Pinctrl设置的电气属性


    image.png

    原来有一个节点用来显示kernel心跳的,它使用了gpio1 21如下。

            led2 {
                label = "beaglebone:green:heartbeat";
                gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "heartbeat";
                default-state = "off";
            };
    

    所以我需要修改禁用此节点,修改如下

            led2 {
                label = "beaglebone:green:heartbeat";
                /*gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;*/
                linux,default-trigger = "heartbeat";
                default-state = "off";
                status = “disabled”
            };
    

    主节点下增加applele节点(添加pinctrl-0引用及gpio引脚设置)

        appleled{
            /* #address-cells = <1>; */
            /* #size-cells = <1>; */
            compatible = "gpio-leds";
            pinctrl-names = "default";
            pinctrl-0 = <&usr_led_test>;
            gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
            status = "okay";
        };
    

    在&am33xx_pinmux中追加,pinctrl设置(电气属性及功能脚定义)

        usr_led_test:usr_led_test {
            pinctrl-single,pins = <
                        /* gpmc_a5.gpio1_21 */
                AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7)
            >;  
        };
    

    三,制作驱动并检查

    image.png

    四,制作应用,控制成功(1为LEDON,0为LEDOFF)

    image.png

    相关文章

      网友评论

        本文标题:Linux基于pinctrl的LED控制—Apple的学习笔记

        本文链接:https://www.haomeiwen.com/subject/uhjlahtx.html