1)使用struct regulator_desc描述regulator的静态信息,包括:名字、supply regulator的名字、中断号、操作函数集(struct regulator_ops)、使用regmap时相应的寄存器即bitmap等等。 2)使用struct regulator_config,描述regulator的动态信息(所谓的动态信息,体现在struct regulator_config变量都是局部变量,因此不会永久保存),包括...
这适用于voltage regulator和current regulator(其中电压和电流都是可控的)。 2. Linux Regulator Framework分为四个部分,分别是machine,regulator,consumer,sys-class-regulator。 (1)machine machine可以理解为regulator在板级的硬件配置,使用regulator_init_data结构体代表regulator板级的配置。 1 2 3 4 5 6 7 8 9...
比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。这个文件可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。 基于同样的软件分层设计的思想...
OF : Open FirmwareDTS : Device Tree SourceDTSI : Device Tree Source IncludeDTB : Device Tree BlobDTC : Device Tree Compiler 设备树的编译、加载过程图:linux内核对硬件的描述方式 在以前的内核版本中: 1)内核包含了对硬件的全部描述;2)bootloader会加载一个二进制的内核镜像,并执行它,比如uImage或者z...
{ compatible = "regulator-fixed"; regulator-name = "vcc_lcd"; gpio = <&gpio1 13 GPIO_ACTIVE_HIGH>; startup-delay-us = <20000>; enable-active-high; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; vin-supply = <&vcc5v0_sys>; }; ...
比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。这个文件可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。
regulator-name = "3P3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. &i2c1 { pinctrl-names = “default”; ...
下面的例子中就是直接引用了dtsi中的一个节点,并向其中添加/修改新的属性信息: 三、KEY 在设备树中,键值对是描述属性的方式,比如,Linux驱动中可以通过设备节点中的"compatible"这个属性查找设备节点。 Linux设备树语法中定义了一些具有规范意义的属性,包括:compatible, address, interrupt等,这些信息能够在内核初始化找...
在前两篇中我们了解了DTS的背景基础知识以及发挥作用的流程,这篇文章我们以android 7.1 高通的MSM8953平台为例来添加一个基础的i2c设备(包含一个gpio中断)。 1,首先我们在该i2c设备的驱动中找到了匹配设备与驱动程序的compatible [objc]view plaincopy static const struct of_device_id iqs263_of_match[] = { ...
上面结构体有省略,详细请看内核源码/include/linux/regulator/driver.h,有详细的注释。 name: Regulator的名字 supply_name :该regulator parent的name,在级联时使用 of_match:匹配设备树中的regulator名字 regulators_node:自动从DTS中解析init_data id:regulator的标识 n_voltages:regulator可用的选择器输出数量,固定...