gpio-ranges = <&pinctrl_global7 0 7 1 &pinctrl_global3 1 4 1>;
时间: 2024-05-25 17:10:00 浏览: 81
这行代码是在设备树中定义 GPIO 管脚范围的。其中 `gpio-ranges` 表示 GPIO 管脚范围属性,它的值是一个数组,包含了多个 GPIO 范围。每个 GPIO 范围都包含四个值,分别是:
1. 对应的 pinctrl 节点的 phandle。
2. 起始管脚编号。
3. 管脚数目。
4. 标志位。
在这个例子中,有两个 GPIO 范围。第一个范围是从 `pinctrl_global7` 节点中的第 0 号管脚开始,共 7 个管脚,标志位为 1。第二个范围是从 `pinctrl_global3` 节点中的第 1 号管脚开始,共 4 个管脚,标志位为 1。这些范围定义了一个设备可以使用的 GPIO 管脚范围。
相关问题
gpio节点中的gpio-ranges = <&pinctrl_aon1 0 0 12>;什么意思
这是一个设备树节点中的属性,用于描述GPIO控制器与物理引脚之间的映射关系。
具体来说,gpio-ranges属性的格式如下:
<&pinctrl_controller gpio_offset pin_offset nr_gpio>
其中,&pinctrl_controller是一个引用到用于控制GPIO的控制器的节点;gpio_offset是控制器中第一个GPIO的编号;pin_offset是控制器所控制的第一个物理引脚的编号;nr_gpio是在该控制器中所控制的GPIO数量。
在你提供的这个例子中,&pinctrl_aon1是GPIO控制器的节点,0是控制器中第一个GPIO的编号,0是控制器所控制的第一个物理引脚的编号,12是在该控制器中所控制的GPIO数量。这个属性的意义是,在GPIO控制器中,第一个GPIO对应的物理引脚是AON1的引脚0,后续的GPIO依次对应下一个引脚,共计12个。
reg_usb_h1_vbus: regulator@1 { compatible = "regulator-fixed"; reg = <1>; regulator-name = "usb_h1_vbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpio1 29 0>; enable-active-high; vin-supply = <&swbst_reg>; };
这段代码是一个设备树中的节点描述,描述了一个名为 "reg_usb_h1_vbus" 的固定电压调节器(regulator-fixed)。下面是对每个属性的解释:
- compatible = "regulator-fixed": 定义了该节点与 "regulator-fixed" 类型的固定电压调节器兼容。
- reg = <1>: 指定了该节点在设备树中的索引号。
- regulator-name = "usb_h1_vbus": 指定了电压调节器的名称为 "usb_h1_vbus"。
- regulator-min-microvolt = <5000000>: 指定了电压调节器的最小输出电压为 5V(5000000微伏)。
- regulator-max-microvolt = <5000000>: 指定了电压调节器的最大输出电压为 5V(5000000微伏)。
- gpio = <&gpio1 29 0>: 指定了用于控制电压调节器使能的 GPIO 引脚。具体来说,它使用了设备树中的 gpio1 控制器,并使用引脚号 29,引脚配置为默认模式(0)。
- enable-active-high: 指定了使能引脚的电平极性为高电平激活。
- vin-supply = <&swbst_reg>: 指定了该电压调节器的输入电源来自于名为 "swbst_reg" 的另一个调节器。
这段代码描述了一个固定输出电压为 5V 的电压调节器,并使用 GPIO 引脚来控制其使能。它还指定了输入电源来自于名为 "swbst_reg" 的另一个调节器。设备树中的其他节点可以引用该电压调节器以获取所需的电源。