[imx6][Linux4.9]IMX6平台 pinctrl子系统

在这里插入图片描述

文章目录

    • 1、Pinctrl 子系统
      • 1.1、Pinctrl 子系统的作用
      • 1.2、设备树中PIN的配置信息
      • 1.2、设备树中PIN的配置信息中的复用信息解析
      • 1.3、PINCTRL子系统驱动

主控芯片硬件开发板内核版本
imx6100ask_imx6ullLinux-4.9.88

1、Pinctrl 子系统

1.1、Pinctrl 子系统的作用

  • 获取设备树中的pin信息;
  • 根据获取到的pin信息来设置pin的复用功能;
  • 根据获取到的pin信息来设置pin的电气特性。

1.2、设备树中PIN的配置信息

设备树里面创建一个节点来描述 GPIO PIN 的配置信息:
设备树文件目录:Linux-4.9.88/arch/arm/boot/dts/imx6ull.dtsi
在这里插入图片描述
iomuxc 节点进行数据的追加:

&iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog_1>;
        imx6ul-evk {
                pinctrl_hog_1: hoggrp-1 {
                        fsl,pins = <
                                MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059 /* SD1 CD */
                                MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x17059 /* USB OTG1 ID */
                                MX6UL_PAD_CSI_DATA07__GPIO4_IO28           0x000010B0
                                MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05        0x000110A0
                        >;
                };
                ......
                pinctrl_i2c1: i2c1grp {
                        fsl,pins = <
                                MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
                                MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
                        >;
                };
                ......
		}
}

1.2、设备树中PIN的配置信息中的复用信息解析

MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059

这个宏定义在:Linux-4.9.88/arch/arm/boot/dts/imx6ul-pinfunc.h

                                                    /* <mux_reg  conf_reg  input_reg  mux_mode input_val> */
#define MX6UL_PAD_UART1_RTS_B__GPIO1_IO19               0x0090   0x031c    0x0000     5        0

从芯片手册:IMX6ULLRM.pdf可知

  • mux_regSW_MUX_CTL_PAD_UART1_RTS_B偏移地址:0x0090

  • mux_mode5代表为普通GPIO模式
    在这里插入图片描述

  • conf_regIOMUXC_SW_PAD_CTL_PAD_UART1_RTS_B 偏移地址:0x031c

  • 0x17059 就是 conf_reg 寄存器值,对应二级制为:10111000001011001
    在这里插入图片描述

1.3、PINCTRL子系统驱动

文件目录:Linux-4.9.88/drivers/pinctrl/freescale/pinctrl-imx6ul.c
文件目录:Linux-4.9.88/rivers/pinctrl/freescale/pinctrl-imx.c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/340948.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle Linux 9.3 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

[足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07-3 线性二次型调节器(LQR)

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - 最优控制Optimal Control Ch07-3 线性二次型调节器&#xff08;LQR&#xff09; 1. 数学推导2. 案例反洗与代码详解 1. 数学推导 2. 案例反洗与代码详解

力扣移掉k位数字402

Problem: 402. 移掉 K 位数字 给你一个以字符串表示的非负整数 num 和一个整数 k &#xff0c;移除这个数中的 k 位数字&#xff0c;使得剩下的数字最小。请你以字符串形式返回这个最小的数字。 示例 1 &#xff1a; 给你一个以字符串表示的非负整数 num 和一个整数 k &…

Java - 单元测试及Junit的使用讲解及练习

目录 &#x1f436;2.1 什么是单元测试 &#x1f436;2.2 测试分类&#xff1a; 1. &#x1f959;黑盒测试 2. &#x1f959;白盒测试 &#x1f436;2.3 Junit介绍 &#x1f436;2.4 Junit的基本使用步骤:(默认使用maven创建项目) 1. &#x1f959;pom.xml中引入依赖: 2…

vscode连不上虚拟机,一直密码错误

最近在做毕设&#xff0c;但是vscode使用连接不上虚拟机&#xff0c;我以为是网络配置的问题&#xff0c;一顿查阅没找到原因。 后来查了一下ssh的日志&#xff0c;发现ssh有消息&#xff0c;但是也提示密码错误。 没找到密码配置格式什么的&#xff0c;经查看sshd配置文件发现…

为什么 HTTPS 协议能保障数据传输的安全性?

HTTP 协议 在谈论 HTTPS 协议之前&#xff0c;先来回顾一下 HTTP 协议的概念。 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议&#xff0c;它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯&#xff0c;目前协议由之前的 RFC 2616 拆…

基于springboot+vue的甘肃非物质文化网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

FUSEE: A Fully Memory-Disaggregated Key-Value Store——论文泛读

FAST 2023 Paper 元数据论文阅读汇总 问题 分布式内存键值&#xff08;KV&#xff09;存储正在采用分离式内存&#xff08;DM&#xff09;体系结构以提高资源利用率。然而&#xff0c;现有的DM上的KV存储采用半分离式设计&#xff0c;在DM上存储KV对&#xff0c;但在单个元数…

仓储管理系统——软件工程报告(需求分析)②

需求分析 一、系统概况 仓库管理系统是一种基于互联网对实际仓库的管理平台&#xff0c;旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询&#xff0c;可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率&#xff…

C++ 20 Module

头文件包含一直是C/C的传统&#xff0c;它使代码声明与实现分离&#xff0c;但它有一个非常大的问题就是会被重复编译&#xff0c;拖累编译速度。 通常一个标准头文件iostream展开后可能达几十万甚至上百万行。笔者使用下面的示例进行测试&#xff0c;新建一个main.cc&#xf…

每日一题——LeetCode1304.和为零的N个不同整数

方法一 个人方法 n为偶数&#xff0c;只要同时放入一个数的正数和负数&#xff0c;那么和总为0&#xff0c;n是奇数就放入一个0&#xff0c;剩下的当偶数看待 var sumZero function(n) {let res[]if(n%2!0){res.push(0)n--}nn/2for(let i1;i<n;i){res.push(i)res.push(-i…

Linux 系统中查看系统日志方法

Linux 系统提供了强大的日志功能&#xff0c;可以记录系统和应用程序的各种事件和错误信息。系统日志对于故障排除和性能监控非常重要。 一、使用命令行工具查看系统日志 1. 使用 journalctl 命令查看系统日志&#xff1a; journalctl 命令是 systemd 日志管理器的客户端工具…

npm下载依赖报Python,c++等相关错误

执行npm install 下载时&#xff0c;报错&#xff0c;缺少python相关的错 解决方法&#xff1a; //下载python 1、 npm install --global --production windows-build-tools//配置环境 &#xff1a; 也可暂时不用配置,能用就不用配置&#xff08;npm config set python &qu…

大数据学习之Flink,Flink部署

Flink部署 一、了解它的关键组件 客户端&#xff08;Client&#xff09; 作业管理器&#xff08;JobManager&#xff09; 任务管理器&#xff08;TaskManager&#xff09; 我们的代码&#xff0c;实际上是由客户端获取并做转换&#xff0c;之后提交给 JobManger 的。所以 …

力扣746. 使用最小花费爬楼梯

动态规划 思路&#xff1a; 定义 dp[i] 为到达下标 i 层的最小花费&#xff1b;则状态转移方程为&#xff1a; 第 i 层可以从第 i - 1 层爬一层或者第 i - 2 层爬两层到达&#xff1b;则 dp[i] std::min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2])初始状态&#xff1a…

【漏洞复现】CloudPanel makefile接口远程命令执行漏洞(CVE-2023-35885)

文章目录 前言声明一、CloudPanel 简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 CloudPanel 是一个基于 Web 的控制面板或管理界面&#xff0c;旨在简化云托管环境的管理。它提供了一个集中式平台&#xff0c;用于管理云基础架构的各个方面&#xff0c;包括 &a…

可靠与稳定的数字化时代之选——亚信安慧AntDB数据库

在数字化时代&#xff0c;数据已经成为企业的重要资产。为了确保数据的可靠、稳定与高效处理&#xff0c;越来越多的企业选择亚信安慧AntDB数据库作为其核心数据存储和处理解决方案。AntDB数据库凭借其超融合、可靠和稳定的特点&#xff0c;为企业提供了卓越的数据管理体验。 …

终端(命令提示符或Windows PowerShell或Azure Cloud Shell)概述

终端&#xff08;命令提示符或Windows PowerShell或Azure Cloud Shell&#xff09;是一种很 不 好用的东西 就是要背&#xff0c;很 不 爽 介绍 Windows 终端是一个新式主机应用程序&#xff0c;它面向你喜爱的命令行 shell&#xff0c;如命令提示符、PowerShell 和 bash&…

OpenCV——Scharr边缘检测

目录 一、Scharr算法1、算法概述2、主要函数 二、C代码三、python代码四、结果展示1、灰度图2、X方向一阶边缘2、Y方向一阶边缘3、整幅图像的一阶边缘 五、相关链接 OpenCV——Scharr边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&…

代码+视频R语言绘制逆概率加权后的基线表

基于 PS &#xff08;倾向评分&#xff09;的逆概率加权(IPTW )法首先由&#xff32;osenbaum作为一种以模型为基础的直接标准化法提出&#xff0c;属于边际结构模型。简单来说&#xff0c;就是把许多协变量和混杂因素打包成一个概率并进行加权&#xff0c;这样的话&#xff0c…