在没有使用GPIO子系统之前,如果要点亮一个LED,首先需要得到led相关的配置寄存器,再手动地去读、改、写这些配置寄存器,以实现控制LED的目的。有了GPIO子系统之后这部分工作由GPIO子系统来完成,开发者只需要调用GPIO子系统提供的API函数即可完成对GPIO的控制动作。 在stm32mp157-pinctrl.dtsi文件中的pinctrl 子节点已经...
work4_led_gpio: work4-led-gpio{ rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>; }; }; } 步骤二:调试,验证:在用户空间操作led 使用了驱动框架后可以不需要编写应用程序就可以测试led是否能正常被点亮与熄灭,这些都可以在sysfs文件系统中完成。在装载驱动后可以在/sys/class/leds/目录下...
/*** 函数介绍 ***//* 作用 : 如果不使用某个GPIO了,那么就需要调用 gpio_free 函数进行释放* 传入参数 :* gpio : 要释放的GPIO引脚号* 返回参数 : 无*/void gpio_free(unsigned gpio); 作用: 如果不使用某个 GPIO 了, 那么就需要调用 gpio_free 函数进行释放。 gpio : 要释放的GPIO引脚号。与gpio...
1.IMX6ULL 的 GPIO 操作方法 2. IMX6ULL 的 GPIO 模块结构 有5 组 GPIO(GPIO1~GPIO5),每组引脚最多有 32 个,但是可能实际上并没有那么多。 GPIO1 有 32 个引脚:GPIO1_IO0~GPIO1_IO31; GPIO2 有 22 个引脚:GPIO2_IO0~GPIO2_IO21; GPIO3 有 29 个引脚:GPIO3_IO0~GPIO3_IO28; GPIO4 有...
首先查看原理图,看看我们的板子上的LED等接在哪一个IO口上面。 从原理图我们可知,LED灯接在芯片的GPIO1的第三个引脚上面,也就是GPIO1_IO03。 二、IMX6UL的GPIO操作方法 先掌握三个名词: CCM:Clock Controller Module(时钟控制模块) IOMUXC:IOMUX Controller,IO复用控制器 ...
9.3.1 LED的GPIO编号计算 从原理图中找到对应LED的设计,具体的连接如下图所示。从图中我们可以看到,LED连接到的GPIO为GPIO5_3,其对应的GPIO编号实际为(5-1)*32+3 = 131。因此,我们如果要在sys_gpio中操作LED,我们就需要将编号131的GPIO进行导出。
对于LED灯的控制进行控制,也就是对上述GPIO的寄存器进行读写操作。可大致分为以下几个步骤: 使能GPIO时钟(默认开启,不用设置) 设置引脚复用为GPIO(复位默认为GPIO,不用配置) 设置引脚属性(上下拉、速率、驱动能力,默认) 控制GPIO引脚为输出,并输出高低电平 因为GPIO的时钟默认开启,引脚默认复用为GPIO,我们只需要...
在LED子系统中,硬件驱动层相关文件在包括:kernel/drivers/leds/目录下,其主要的函数有:led-gpio.c、led-xxx.c,其中led-gpio.c为通用的平台驱动程序,led-xxx.c为不同厂家提供的平台驱动程序。 我们在这里主要分析led-gpio.c 1、gpio_led_probe分析
(1)确认led所连接的引脚,led1、led2分别连接的引脚为EXYNOS4_GPD0(0)和EXYNOS4_GPD0(1),此处的EXYNOS4_GPD0(0)是一个宏,该宏是IO引脚的结构描述,两个led定义为一个数组的代码如下: (2)写使用到的两个gpio申请,且申请成功之后将他们配置为输出模式,同时保持默认高电平,根据原理图可知当低电平时led打开,...