• 2024-11-11wifi模块使用主控输出的32k时钟
    soc:rk3568WiFi模块需要的32.768K时钟,有三种时钟源,rk809和8563提供,或者使用主控输出的。 dts修改如下:&wireless_bluetooth{compatible="bluetooth-platdata";-clocks=<&rk8091>;+clocks=<&cruSCLK_32K_IOE>;clock-n
  • 2024-11-04Pinctrl子系统中Pincontroller和client驱动程序的编写
    往期内容本专栏往期内容:Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析:imx_pinctrl_soc_info结构体Pinctrl子系统中client端使用pinctrl过
  • 2024-10-31Pinctrl子系统pinctrl_desc结构体进一步介绍
    往期内容本专栏往期内容:Pinctrl子系统和其主要结构体引入input子系统专栏:专栏地址:input子系统input角度:I2C触摸屏驱动分析和编写一个简单的I2C驱动程序–末片,有往期内容观看顺序I2C子系统专栏:专栏地址:IIC子系统具体芯片的IIC控制器驱动程序分析:i2c-imx.c-CSDN博客
  • 2024-09-19迅为RK3588开发板 | 在高性能处理器上如何使用GPIO
      ------------------------------------ 注:详细使用可参考《【北京迅为】itop-3588开发板驱动开发指南》 GPIO基本概念GPIO,即General-PurposeInput/Output,指的是可以由软件控制的通用输入输出引脚。每个GPIO引脚可以配置为输入或输出,用来读取外部设备的状态(如按键)或控制外设(
  • 2024-09-19迅为RK3588开发板 | 在高性能处理器上如何使用GPIO
      ------------------------------------ 注:详细使用可参考《【北京迅为】itop-3588开发板驱动开发指南》 GPIO基本概念GPIO,即General-PurposeInput/Output,指的是可以由软件控制的通用输入输出引脚。每个GPIO引脚可以配置为输入或输出,用来读取外部设备的状态(如按键)或
  • 2024-09-14迅为RK3588开发板/核心板 | 在高性能处理器上如何使用GPIO
    GPIO基本概念GPIO,即General-PurposeInput/Output,指的是可以由软件控制的通用输入输出引脚。每个GPIO引脚可以配置为输入或输出,用来读取外部设备的状态(如按键)或控制外设(如LED、马达等)GPIO应用领域GPIO作为嵌入式设备中不可或缺的接口,在以下多个领域有广泛应用:●智能家居:用于控制和
  • 2024-09-09【ZYNQ MPSoC Linux开发】为什么ZYNQ的EMIO不需要配置pinctrl子系统而只需要配置GPIO子系统
        要细究这个问题,首先要知道pinctrl子系统和GPIO子系统究竟是干什么的,pinctrl子系统主要用于配置引脚的状态(如功能复用、电气属性等),而在Linux的软件架构中,GPIO子系统提供了对GPIO引脚的直接操作接口,如设置引脚方向、读取/写入引脚值等。    我们知道,在使用
  • 2024-08-3113、STM32MP157A-HDMI移植
    1、介绍​STM32MP157A系列SoC中默认没有HDMI相关控制器,FS-MP1A使用SiI9022芯片将RGB信号转化为HDMI信号。STM32MP157A集成LTDC(LCD-TFTDisplayController),提供一个24bitRGB并行接口用于连接到各种LCD和TFT面板​SiI9022A是一款HDMI传输芯片,
  • 2024-08-02嵌入式Linux中的LED驱动控制(使用Pinctrl和GPIO子系统)
    在前面驱动LED的所有案例中,都是在驱动程序中去设置每个引脚的复用功能,这会导致所编写的驱动程序移植困难,可重用性差,缺乏对引脚的统一管理,容易出现引脚的重复定义等等弊病。为此,Linux内核引入了pinctrl子系统和GPIO子系统的概念。pinctrl子系统主要用于芯片引脚功能的管理,它基本上
  • 2024-07-25pinctrl&gpio介绍
    目的:实现IO口功能设置的软硬件分离pinctrl:通过设备树节点,记录不同板级硬件信息;Pinctrl遵循的是platform框架实现实现设备总线。gpio:  通过一些列的API接口,读取设备树中pinctrl节点的硬件信息,设置相应的引脚功能。 pinctrl文件位置:Linux文件结构的dri
  • 2024-06-17RK3308 工程配置修改
           wireless-bluetooth{    uart4_gpios:uart4-gpios{      rockchip,pins=<4RK_PA7RK_FUNC_GPIO&pcfg_pull_none>;    };   wireless_bluetooth:wireless-bluetooth{    compatible="bluetoot
  • 2024-06-11I.MX6ULL 的 pinctrl 子系统驱动学习
    pinctrl子系统主要工作内容如下:①、获取设备树中pin信息。②、根据获取到的pin信息来设置pin的复用功能③、根据获取到的pin信息来设置pin的电气特性,比如上/下拉、速度、驱动能力等。对于我们使用者来讲,只需要在设备树里面设置好某个pin的相关属性即可,其他的初始
  • 2024-06-05【linux-IMX6ULL-pinctrl和gpio子系统】
    目录1.pinctrl子系统1.1pinctrl子系统简介1.2pinctrl子系统使用1.2.1追加pin节点1.2.2配置引脚信息节点2.GPIO子系统2.1GPIO子系统简介2.1gpio子系统API函数3.检查PIN是否被其他外设使用1.pinctrl子系统1.1pinctrl子系统简介  pinctrl和gpio子系
  • 2024-06-05RK3308B WIFI
     修改WIFI型号./device/rockchip/rk3308/rockchip_rk3308b_64bit_defconfig修改设备树根节点--->wireless-wlanwireless-wlan{compatible="wlan-platdata";rockchip,grf=<&grf>;pinctrl-names="default&quo
  • 2024-05-24orangepi zero2在linux5.4以上内核使用ili9341
    背景根据orangepizero2用户手册说明,linux5.13内核不能使用modprobefbtft_device驱动spilcd查看linux内核源码提交记录,发现在v5.4-rc3中删除了fbtft_device.c文件commit如下staging/fbtft:Removefbtft_deviceCommitc440eee("Staging:fbtft:Switchtothegpiode
  • 2024-05-19IMX6ULL Linux内核网络驱动修改
    IMX6ULL网络驱动修改主要修改arch/arm/boot/dts/imx6ul-14x14-evk.dtsi设备树文件即可,修改方式和u-boot的设备树修改一致。硬件电路设备树修改需要修改的设备树位置:arch/arm/boot/dts/imx6ul-14x14-evk.dtsi增加复位引脚信息从上面的原理图可知网口1使用的复位引脚是GPIO
  • 2024-05-17Linux平台移植音频芯片实战记录
    本文详细记录在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程,其他平台操作方法类似,希望为大家提供帮助。1. 环境准备平台: HD6ULL-IOT开发板要求: 外接一个WM8960模块。要求能正常播放音频文件。2. 原理图及相关资料将模块飞线到底板J17上,接法如下;且模块1脚 
  • 2024-05-14u-boot网络移植
    修改网口配置信息主要修改设备树的信息,设备树位于:arch/arm/dts/imx6ul-14x14-evk.dtsi硬件电路图修改fec2信息未修改前的信息如下:修改网口1器件的ID信息,网口1使用的ID是0&fec2{pinctrl-names="default";pinctrl-0=<&pinctrl_enet2>;phy-mode="r
  • 2024-05-10基于pinctrl和GPIO子系统的按键驱动程序
    嵌入式驱动开发中pinctrl和GPIO子系统使用频率非常高,其中pinctrl子系统主要用于复用和配置引脚,GPIO子系统用于设置GPIO的输入/输出,向引脚写入数据或者从引脚读取数据。一个引脚可以复用为多种不同的功能,因此要使用GPIO子系统首先要先把引脚配置为GPIO功能。下面将分为两部分记录如
  • 2024-05-09初探pinctrl子系统和GPIO子系统
    前言:在前面的led驱动程序和按键驱动程序中,无论是最传统的方法,还是总线设备驱动模型,还是基于设备树的总线设备驱动模型,都是直接操作寄存器的方法。驱动开发的本质确实是操作寄存器,但是一个芯片有几百个引脚,只是操作少数的几个引脚还好,如果是大量的引脚,比如LCD接口的引脚几十个,一个
  • 2024-04-2515_pinctl和gpio子系统
    pinctl和gpio子系统1.什么是pinctrl和gpio子系统?​ pinctrl子系统是用来设置引脚的复用关系和电气属性的,gpio子系统是当pinctrl子系统把引脚的复用关系设置为gpio功能以后就可以使用gpio子系统来操作引脚了,比如引脚的输入输出,高低电平等2.LinuxPinctrl子系统提供的功能是
  • 2024-03-23pinctrl使用实例
    不同半导体厂商的pinctrl设计均不同,这里以高通的pinctrl使用举例: dts修改://mtp-pinctrl.dtsileds_redon:leds_redon{mux{pins="gpio161";function="gpio";};config{
  • 2024-03-23gpio子系统与pinctrl子系统通用API
    此篇不涉及gpio子系统和pinctrl原理解释,只列举相关操作函数: 通用的GPIO操作:1.gpio_request(unsignedgpio,constchar*label):向内核申请指定gpio,所申请的IO口会被内核记录参数:gpio:申请IO口编号,label:申请者的名字,随便。返回:int值,成功:0;失败:负数注:在使用gpio口之前,应先用g
  • 2023-12-10PINCTRL(PIN CONTROL)子系统 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/pin-control.htmlPINCTRL(PINCONTROL)子系统本文概述了Linux中的pincontrol子系统。该子系统涉及以下内容:枚举和命名可控制的引脚引脚、Pads、Fingers(等)的复用,请参见下文了解详情配置引脚、Pads、Fingers(等),例如软件控制
  • 2023-11-09方法|基于T507开发板讲如何将占用引脚配置为普通GPIO
    方法|基于T507开发板讲如何将占用引脚配置为普通GPIO根据T5用户手册描述,只有在不使用多路复用功能的情况下,这些端口才可以配置为GPIO,所以我们需要把引脚的复用功能关闭。将被占用引脚配置为普通1.查看引脚默认功能配置2.关闭引脚默认功能配置以UART4-TX的PI13为例,这是PI13引脚复用