理解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
  • 计算机图形学方向和前景&&3D

    我是刚入坑计算机图形学的小菜鸟 xff0c 在百度上搜索计算机图形学方向和前景和3D xff0c 几乎不能搜到什么有用的东西 xff0c google还能搜到些有用的 xff0c 但是需要翻墙 恰好前几天山大承办的games xff0c 北
  • Docker 删除&清理镜像

    文章首发自个人网站 xff1a https www exception site docker docker delete image 本文中 xff0c 您将学习 Docker 如何删除及清理镜像 xff1f 一 通过标签删除镜像 通过如
  • KubeEdge 超详细部署记录&问题记载6.28

    KubeEdge 部署记录 2020 4 13 需要组件 云端 xff1a kubernetes V1 16 kubectl kubelet kubeadm docker gcc make golang keadm 边端 xff1a gol
  • shell:重启&&关机

    文章目录 shutdownhaltpoweroffrebootinitsync shutdown 关机重启命令 shutdown h 10十分钟后关机shutdown h 0马上关机shutdown h now马上关机shutdown c取
  • PX4模块设计之一:SITL & HITL模拟框架

    PX4模块设计之一 xff1a SITL amp HITL模拟框架 1 模拟框架1 1 SITL模拟框架1 2 HITL模拟框架 2 模拟器类型3 MAVLink API4 总结 基于PX4开源软件框架简明简介的框架设计 xff0c 逐步分
  • 传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X

    传感模块 xff1a MATEKSYS Optical Flow amp LIDAR 3901 L0X 1 模块介绍2 规格参数3 使用方法Step1 接线方式Step2 安装方式Step3 使用范围 4 存在问题 思考 4 1 MATEK
  • Intel RealSense L515&Unreal Engine 4调试记录

    文章目录 前言一 安装与配置1 安装前置条件2 配置 二 编译与运行1 编译2 运行 填坑与测试1 填坑2 测试 前言 Intel RealSense系列推出了适用于Unreal Engine 4的相关插件 xff0c 官网提供了相关示例代
  • weak & asign

    Why does Apple use assign rather than weak to store a delegate http stackoverflow com questions 20419317 why does apple
  • cmake & CMakeLists.txt

    文章目录 前言先从体验开始1 一个最简单的例子 xff1a 2 例子升级 xff0c 将hello c生成为一个库 xff1a 3 例子升级 xff0c 将源代码和库分开放 xff1a 4 让可执行文件在 bin 目录 xff0c 库文件在
  • Jetson xavier Nx & jetson nano 上手 + 刷机

    本教程基于Jetson xavier Nx开发套件 本教程参考Nvidia官方刷机教程 制作启动盘 在官方下载中心下载SD卡镜像并解压 下载SD Memory Card Formatter 需要划到页面最下方 xff0c 点击 Accept
  • Chrome安装Proxy SwitchyOmega插件&Ubuntu20.04安装Proxychains

    目录 1 Chrome浏览器1 1 安装Proxy SwitchyOmega插件1 2 安装Proxy SwitchyOmega插件 2 Ubuntu服务器2 1 安装2 2 配置2 3 测试2 4 异常处理 1 Chrome浏览器 1 1
  • 无人机拉力测试台研制&测试过程中的9个关键技术点

    随着近年来无人机行业的飞速迭代发展 xff0c 越来越多的相关从业人员选择使用拉力测试台来测试并优化无人机的动力系统 xff0c 本文尝试从无人机拉力测试台的研制和使用角度来阐述无人机拉力测试中的9个关键技术点 1 电磁干扰方面的考虑 测试
  • ROS通信机制~话题通信(Publisher&Subscriber)·笔记2

    系列文章目录 xff1a ROS开发 xff08 ubuntu xff09 笔记 1 嘻 嘻的博客 CSDN博客 ROS通信机制 服务通信 server amp client 笔记3 嘻 嘻的博客 CSDN博客 话题通信 理论模型 xff1
  • ROS速成之发送&接收消息

    人真的老了 xff0c 扔了个周末 xff0c 完全不记得干了什么 论纪录的重要性啊 xff0c 当时觉得明白的很 xff0c 你扔两天试试 xff1f 扔一年试试 xff1f 扔几年试试 xff1f 最近参加的各种项目脑疼眼乏 xff0c
  • 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 分布式集散式 基于逻辑与规则的多无人机任务规划
  • Cmake入门&运行保存C/C++文件

    Cmake入门 amp 运行保存C C 43 43 文件 在ubuntu创建 保存 运行c 43 43 文件CMake入门创建文件编译 参考 最近在学习Intel realsense T265双目视觉 xff0c 其中一步需要创建源文件ma
  • 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 可以不直接在它定义