理解dtsi中的&

2023-05-16

1 dtsi中的 & 怎么理解呢?

可以把它理解引用,因为dtsi中的每个模块(驱动程序)都是用{}包在内的,所以当你要修改某个模块A时,可以不直接在它定义的地方修改,可以别的地方(不在同一个文件,需要#include “被访问到的.dtsi”)采用如下方式:
&
modified: xxx
};

2 举例说明

2.1 两个模块的原始定义如下:

第一个 simple-panel-dsi 设备

dsi0_panel: panel@0 {
		status = "okay";
		compatible = "simple-panel-dsi";
		reg = <0>;
		num = <0>;
		id = [83 94];
		id-reg = <0x04>;
		backlight = <&backlight1>;
        pinctrl-names = "default";
        pinctrl-0 = <&lcd_rst>;
        reset-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_LOW>;
        init-delay-ms = <20>;
		reset-delay-ms = <60>;
		enable-delay-ms = <60>;
		prepare-delay-ms = <60>;
		unprepare-delay-ms = <60>;
		disable-delay-ms = <60>;
		dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |	MIPI_DSI_MODE_LPM)>;
		dsi,format = <MIPI_DSI_FMT_RGB888>;
		dsi,lanes  = <4>;

第二个 regulator-fixed 设备

vcc3v3_lcd0_n: vcc3v3-lcd0-n {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_lcd0_n";
		regulator-boot-on;
		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

2.2 通过 & 引用并修改

&DSI0_PANEL {
	POWER-SUPPLY = <&VCC3V3_LCD0_N>; // POWER-SUPPLY 接收的是另一个设备VCC3V3_LCD0_N
};
VCC3V3_LCD0_N设备我要使用到它,但是也需要修改,继续用 &
&VCC3V3_LCD0_N {
	GPIO = <&GPIO3 RK_PC6 GPIO_ACTIVE_HIGH>;
	ENABLE-ACTIVE-HIGH;
};

3 一个补丁中用到的&

在rockchip某型开发板中,只支持显示3路输出(hdmi, mipi, lvds, edp四选三),以下补丁的内容是把关掉的hdmi重新打开,从中也可以体会到 ==&==的使用技法

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
index f200c1cda..67a349d91 100755
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
@@ -228,7 +228,7 @@
 	};
 	
 	edp-panel {
-		status = "okay";
+		status = "disabled";
 		compatible = "simple-panel";
 		backlight = <&backlight2>;
 		bus-format = <MEDIA_BUS_FMT_RGB888_1X24>;
@@ -1286,7 +1286,7 @@
 };
 
 &hdmi {
-	status = "disabled";
+	status = "okay";
 	rockchip,phy-table =
 		<92812500  0x8009 0x0000 0x0270>,
 		<165000000 0x800b 0x0000 0x026d>,
@@ -1297,7 +1297,7 @@
 };
 
 &hdmi_in_vp0 {
-	status = "disabled";
+	status = "okay";
 };
 
 &hdmi_in_vp1 {
@@ -1305,7 +1305,7 @@
 };
 
 &hdmi_sound {
-	status = "disabled";
+	status = "okay";
 };
 
 &i2c0 {
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
index 37c013724..93206858b 100755
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi
@@ -370,7 +370,7 @@
 };
 
 &route_hdmi {
-	status = "disabled";
+	status = "okay";
 	connect = <&vp0_out_hdmi>;
 };
 
@@ -395,15 +395,15 @@
 &edp {
 	force-hpd;
 	//hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
-	status = "okay";
+	status = "disabled";
 };
 
 &edp_phy {
-	status = "okay";
+	status = "disabled";
 };
 
 &edp_in_vp0 {
-	status = "okay";
+	status = "disabled";
 };
 
 &edp_in_vp1 {

4 还可以用父与子的方式去理解

下图中提到的默认关闭是指 “status = “disabled”,在子dtsi中去打开它。
在这里插入图片描述
rk3568.dtsi理解为父dtsi, rk3568-evb.dtsi是子dtsi, rk3568-pinctrl.dtsi是专门用来书写pinctrl的dtsi
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解dtsi中的& 的相关文章

  • nohub 和 & 在linux上不间断后台运行程序

    1 nohub xff08 没安装的要先安装 xff09 用途 xff1a 不挂断地运行命令 语法 xff1a nohup Command Arg amp 无论是否将 nohup 命令的输出重定向到终端 xff0c 输出都将附加到当前目录的
  • 4.ROS&PX4--运行官方offboard起飞程序

    1 创建空间 span class token function mkdir span catkin ws span class token builtin class name cd span catkin ws span class t
  • AUTOSAR_DCM&DEM(UDS&OBD)

    1 术语与缩写 术语 DCM Diagnostic Communication Manager DEM Diagnostic Event Manager UDS Unified diagnostic services OBD On Boar
  • 计算机图形学方向和前景&&3D

    我是刚入坑计算机图形学的小菜鸟 xff0c 在百度上搜索计算机图形学方向和前景和3D xff0c 几乎不能搜到什么有用的东西 xff0c google还能搜到些有用的 xff0c 但是需要翻墙 恰好前几天山大承办的games xff0c 北
  • OpenGL进阶 | GLM数学库& Shader相关

    一 GLM数学库 OpenGL和DirextX不一样 xff0c 没有内置的数学库 xff0c 于是我们需要找一个第三方数学库来完成OpenGL相关的数学计算 GLM库是一个为OpenGL准备的数学库 xff0c 它提供了各种数学运算的函数
  • ElasticSearch学习&&理解

    注 xff1a 本篇的es基于7 5 1版本 目录 Elasticsearch是什么 xff1f ElasticSearch的环境搭建 ElasticSearch的名词 ElasticSearch查询出的数据格式 ElasticSearch
  • shell:重启&&关机

    文章目录 shutdownhaltpoweroffrebootinitsync shutdown 关机重启命令 shutdown h 10十分钟后关机shutdown h 0马上关机shutdown h now马上关机shutdown c取
  • 【STM32】 利用paho MQTT&WIFI 连接阿里云

    ST联合阿里云推出了云接入的相关培训 xff08 基于STM32的端到端物联网全栈开发 xff09 xff0c 所采用的的板卡为NUCLEO L4R5ZI板 xff0c 实现的主要功能为采集温湿度传感器上传到阿里云物联网平台 xff0c 并
  • Intel RealSense L515&Unreal Engine 4调试记录

    文章目录 前言一 安装与配置1 安装前置条件2 配置 二 编译与运行1 编译2 运行 填坑与测试1 填坑2 测试 前言 Intel RealSense系列推出了适用于Unreal Engine 4的相关插件 xff0c 官网提供了相关示例代
  • 【RoboMaster】舵机驱动&蓝牙模块教程

    本文是为参加2021赛季北京理工大学机器人队校内赛所写的简单教程 xff0c 意在帮助参赛选手快速了解校内赛所需模块的使用方法 xff0c 以及其与薪火培训知识的联系 舵机驱动 硬件接线 舵机是由直流电机 减速齿轮组 传感器和控制电路组成的
  • 关于&&和||的优先级问题

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • Jetson xavier Nx & jetson nano 上手 + 刷机

    本教程基于Jetson xavier Nx开发套件 本教程参考Nvidia官方刷机教程 制作启动盘 在官方下载中心下载SD卡镜像并解压 下载SD Memory Card Formatter 需要划到页面最下方 xff0c 点击 Accept
  • C++中vector作为参数的三种传参方式(传值 && 传引用 && 传指针)

    c 43 43 中常用的vector容器作为参数时 xff0c 有三种传参方式 xff0c 分别如下 xff1a function1 vector vec xff0c 传值 function2 vector amp vec xff0c 传引
  • STM32调试方式JTAG&SWD的区别

    在学习STM32时 xff0c 我们经常会遇到JTAG和SWD的调试方法 xff0c 还涉及到Jlink Ulink Stlink等 xff0c JTAG和SWD是ARM板一种调试模式 后面三种都是实现这种模式的一种工具 xff0c 他们之
  • ROS通信机制~话题通信(Publisher&Subscriber)·笔记2

    系列文章目录 xff1a ROS开发 xff08 ubuntu xff09 笔记 1 嘻 嘻的博客 CSDN博客 ROS通信机制 服务通信 server amp client 笔记3 嘻 嘻的博客 CSDN博客 话题通信 理论模型 xff1
  • STM32&nbsp;HAL库&nbsp;STM3…

    原文地址 xff1a STM32 HAL库 STM32CUBEMX KEIL TIM1 PWM 四路输出可调 一 作者 xff1a 用户2797410335 硬件 xff1a TM32F407VET6 8M晶振 xff0c JLINK JT
  • n&(1<<i)用法

    1 lt lt i 是将1左移i位 xff0c 即第i位为1 xff0c 其余位为0 xff1b 例如1 lt lt 2 则0001 gt 0100 n amp 1 lt lt i 是将左移i位的1与n进行按位与 xff0c 即为保留n的第
  • 无人机集群任务规划方法研究综述&论文解读

    无人机集群任务规划方法研究综述 amp 论文解读 参考文献引言 任务规划理论模型 xff1a 分布式任务规划理论分布式智能规划方法的出现 xff1a 无人机集群应用的核心技术集中式 xff1a 分布式集散式 基于逻辑与规则的多无人机任务规划
  • linux中断&poll&selcet按键处理机制

    在上一篇linux按键中断处理中 xff0c 我们采用按键中断处理获取按键 xff0c 在read函数中阻塞读取 xff0c 当按键发生时 xff0c read自动解除阻塞 xff0c 实现应用层读取到相应的按键值 在上一节中如果没有按键到
  • C++ 文件的读写(fin && fout)

    如何让键盘输入字符保存在 txt文件中 如何让我们自己在键盘上输入的字符不仅仅在屏幕上显示 xff0c 而且还能保存在特定路径的文件中 xff0c 这让简单枯燥的控制台命令程序变得略有趣 首先 xff0c 先看看cin和cout对象 xff

随机推荐

  • js 事件流(冒泡、捕获)与绑定事件方法

    一 xff1a 事件流 事件流描述的是从页面中接收事件的顺序 但 IE 的事件流是事件冒泡流 xff0c 而 Netscape Communicator 的事件流是事件捕获流 1 事件冒泡 IE 的事件流叫做事件冒泡 xff0c 即事件开始
  • python获取当前文件的目录与路径

    绝对路径与相对路径概念 从C 写起的叫绝对路径C Users Sa07 PycharmProjects pythonProject 深度学习 mnist识别手写体 path catch py 绝对路径中包含某个项目 xff0c 我们截取到这
  • 微信小程序的校园求职招聘系统uniapp 附源码

    随着现代网络通信技术越来越深入而广泛的应用 xff0c 国内的招聘网站如雨春笋 xff0c 各种各样的招聘网站映入眼帘 网络上五花八门的企业使得应聘者无从下手 企业在选择应聘者时也只能了解基本情况 针对这些情况 xff0c 本网站做出相应调
  • 机械臂雅可比矩阵导数(未验证)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 求解方法二 代码总结 前言 GitHub上边抄的 xff0c 看了几个算法是一样的 xff0c 自己没有验证就拿来用了
  • ORB-SLAM2与OpenMVS对接实现三维重建

    详细介绍如何实现ORB SLAM2与OpenMVS的对接过程 xff0c 打通上下游实现三位重建 xff0c 二话不说先干图 对于学SLAM的同学对ORB SLAM2可能并不陌生 xff0c 系统框架清晰明了 xff0c 代码风格清新脱俗
  • 基于安卓AndroidStudio校园求职招聘app设计

    开发软件 xff1a Eclipse Idea 43 Android Studio 43 mysql 这是一个基于AndroidStudio前后端分离开发的校园大学生求职招聘app 后端使用java语言的Springboot框架开发 xff
  • 气压计MS5611

    经过几天的痛苦挣扎 终于搞定了 完成气压计的参数读写 xff0c 温度检测 xff0c 大气压计算 因为这款气压计精度高 xff0c 好多计算需要用到正负数 xff0c 整数小数 xff0c 浮点整形 xff0c 有的计算结果特别大 xff
  • Android 序列化Parcelable的使用详解

    背景 xff1a 在Java虚拟机中 xff0c 对象的传递称为数据传递不可或缺的一部分 xff0c 但如果一旦虚拟机停止工作 xff0c 该对象在内存中也就被释放 xff0c 地址空间不存在 xff0c 对象自然就不能再被重复利用 xff
  • 口袋云台拆机微型防抖云台硬件结构解析拆机硬件结构开源云台svpwm控制simple云台storm防抖原理陀螺仪多旋翼吊舱飞控无刷电机FOC

    口袋云台拆机微型防抖云台硬件结构 18大疆发布了众所周知的osmo packet xff0c 其微小的体积和卓越的性能让用户爱不释手 虽然现已是2020年 xff0c 各大厂商都争先推出相关竞品 xff0c 大疆凭借强大的技术后盾产品力自然
  • 开启Java8来启用Lambda表达式在Android Studio的一些配置

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • IPQ4019/QCA9531/MT7628/MT7621系嵌入式无线双频AP核心模块选型探讨

    嵌入式双频无线AP核心模块 首先是核心模块 不是成品主板 也可以认为是成品的核心部分 xff0c 或者理解成只带方便延伸的接口功能 xff0c 不带外围实际接口的成品 xff0c 实际使用时 xff0c 可以根据所需要的接口灵活选择 未必要
  • nginx为什么是多进程单线程和多路IO复用模型

    Nginx现在是非常火爆的web服务器 xff0c 她使用更少的资源 xff0c 支持更多的并发连接数 xff0c 她实现了linux的epoll模型 xff0c 能够支持高达 50 000 个并发连接数的响应 Nginx采用的是多进程单线
  • python函数变量和内置函数

    一 函数的作用域 1 全局变量 xff1a 函数外部定义的变量 xff1a 叫做全局变量 xff0c 全局变量顾名思义就指定不管是函数内部还是函数外部都能够访问 2 局部变量 xff1a 局部变量 xff0c 就是在函数内部定义的变量 xf
  • vector erase删除第几个

    vector lt int gt Ilist Ilist push back 1 Ilist push back 2 Ilist push back 3 Ilist push back 4 Ilist push back 5 Ilist e
  • GLEW_ERROR_NO_GL_VERSION missing GL version一种解决方法

    可能你在代码里面指定了 GLFW 的版本号 xff0c 代码如下 xff1a glfwWindowHint GLFW CONTEXT VERSION MAJOR 4 glfwWindowHint GLFW CONTEXT VERSION M
  • have datatype/md5sum 相关的错误 IndentationError: unexpected indent

    类似的错误信息如下 xff1a ERROR 1611906790 607272604 Client listener 5059 456439 wants topic move base simple goal to have datatyp
  • 运行错误 terminate called without an active exception

    运行错误 xff1a terminate called without an active exception xff0c 可能的原因 xff1a 下面的代码中的 t41 join t42 join t43 join 注释掉会出现这个错误
  • link error : undefined reference to `main‘

    今天发现一个编译错误 xff1a undefined reference to 96 main 39 xff0c 意思是main函数没有定义 xff0c 明明定义了啊 xff0c 结果发现main函数被namespace包起来了 xff0c
  • dtsi编译错误

    1 FATAL ERROR Unable to parse input tree DTC arch arm64 boot dts rockchip rk3568 evb1 ddr4 v10 dtb Error arch arm64 boot
  • 理解dtsi中的&

    1 dtsi中的 amp 怎么理解呢 可以把它理解引用 xff0c 因为dtsi中的每个模块 xff08 驱动程序 xff09 都是用 xff5b xff5d 包在内的 xff0c 所以当你要修改某个模块A时 xff0c 可以不直接在它定义