“RTC device tree configuration”的版本间的差异
来自百问网嵌入式Linux wiki
Zhouyuebiao(讨论 | 贡献) (创建页面,内容为“== Article purpose == This article explains how to configure the '''RTC''' internal peripheral when it is assigned to the Linux<sup>®…”) |
|||
(未显示同一用户的4个中间版本) | |||
第1行: | 第1行: | ||
== Article purpose == | == Article purpose == | ||
− | + | 本文介绍了将 [[RTC internal peripheral|'''RTC''' internal peripheral]] 分配给 Linux<sup>®</sup> OS. 时如何配置。 在这种情况下,它由[[RTC overview|RTC framework]]控制。 | |
− | + | 使用 [[Device tree|device tree]]机制执行配置,该机制提供STM32 RTC Linux驱动程序使用的RTC外设的硬件描述。 | |
== DT bindings documentation == | == DT bindings documentation == | ||
− | + | [[RTC internal peripheral|'''RTC''']]由“ STM32 RTC设备树绑定”表示<ref>{{CodeSource | Linux kernel | Documentation/devicetree/bindings/rtc/st,stm32-rtc.txt | Device tree bindings}}</ref> | |
== DT configuration == | == DT configuration == | ||
− | + | 该硬件描述是'''STM32微处理器'''设备树文件(扩展名为.dtsi)和'''板子'''设备树文件(扩展名为.dts)的组合。 有关设备树文件分割的说明,请参见 [[Device tree]。 | |
− | + | '''STM32CubeMX'''可用于生成板卡设备树。 有关更多详细信息,请参考 [[#How_to_configure_the_DT_using_STM32CubeMX|How to configure the DT using STM32CubeMX]]. | |
− | '''STM32CubeMX''' | ||
===DT configuration (STM32 level) === | ===DT configuration (STM32 level) === | ||
− | + | T在文件“ stm32mp157c.dtsi”中声明了''' RTC'''节点<ref>{{CodeSource|Linux kernel|arch/arm/boot/dts/stm32mp157c.dtsi|STM32MP157C device tree}}</ref>. 它描述了硬件寄存器地址,时钟和中断。 | |
rtc: rtc@5c004000 { | rtc: rtc@5c004000 { | ||
第25行: | 第24行: | ||
status = "disabled"; | status = "disabled"; | ||
}; | }; | ||
− | {{Warning| | + | {{Warning|该设备树部分与STM32微处理器有关。 它应该保持原样,而不要由最终用户修改。}} |
=== DT configuration (board level) === | === DT configuration (board level) === | ||
− | + | 该部分用于启用板上使用的'''RTC''',这是通过将''' status'''属性设置为''' okay'''来完成的。 | |
− | + | “ st,lsco”属性可用于选择和启用在其上输出RTC低速时钟的RTC输出。 有效的输出值在<ref>{{CodeSource|Linux kernel|include/dt-bindings/rtc/rtc-stm32.h|STM32 RTC bindings constants}}</ref>. 中定义。 可以定义一个名为“默认”的pinctrl状态来为RTC输出保留一个引脚。 | |
=== DT configuration examples === | === DT configuration examples === | ||
第42行: | 第41行: | ||
==How to configure the DT using STM32CubeMX== | ==How to configure the DT using STM32CubeMX== | ||
− | + | [[STM32CubeMX]] 工具可用于配置STM32MPU设备并获取相应的[[Device_tree#STM32|platform configuration device tree]] .<br /> | |
− | + | STM32CubeMX可能不支持上述所有属性[[#DT bindings documentation|DT bindings documentation]]段中描述的所有属性。 如果是这样,该工具会在生成的设备树中插入“''用户部分”''。 然后可以编辑这些部分以添加一些属性,并将它们一代一代地保留下来。 有关更多信息,请参见 [[STM32CubeMX]] 用户手册。 | |
==References== | ==References== | ||
− | + | 请参考以下链接以获取更多信息: | |
<references /> | <references /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
2020年11月10日 (二) 09:59的最新版本
目录
Article purpose
本文介绍了将 RTC internal peripheral 分配给 Linux® OS. 时如何配置。 在这种情况下,它由RTC framework控制。
使用 device tree机制执行配置,该机制提供STM32 RTC Linux驱动程序使用的RTC外设的硬件描述。
DT configuration
该硬件描述是STM32微处理器设备树文件(扩展名为.dtsi)和板子设备树文件(扩展名为.dts)的组合。 有关设备树文件分割的说明,请参见 [[Device tree]。 STM32CubeMX可用于生成板卡设备树。 有关更多详细信息,请参考 How to configure the DT using STM32CubeMX.
DT configuration (STM32 level)
T在文件“ stm32mp157c.dtsi”中声明了 RTC节点[2]. 它描述了硬件寄存器地址,时钟和中断。
rtc: rtc@5c004000 {
compatible = "st,stm32mp1-rtc";
reg = <0x5c004000 0x400>; --> Register location and length
clocks = <&rcc RTCAPB>, <&rcc RTC>;
clock-names = "pclk", "rtc_ck";
interrupts-extended = <&intc GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
<&exti 19 1>;
status = "disabled";
};
该设备树部分与STM32微处理器有关。 它应该保持原样,而不要由最终用户修改。 |
DT configuration (board level)
该部分用于启用板上使用的RTC,这是通过将 status属性设置为 okay来完成的。
“ st,lsco”属性可用于选择和启用在其上输出RTC低速时钟的RTC输出。 有效的输出值在[3]. 中定义。 可以定义一个名为“默认”的pinctrl状态来为RTC输出保留一个引脚。
DT configuration examples
#include <dt-bindings/rtc/rtc-stm32.h> ... &rtc { st,lsco = <RTC_OUT2_RMP>; pinctrl-0 = <&rtc_out2_rmp_pins_a>; pinctrl-names = "default"; };
How to configure the DT using STM32CubeMX
STM32CubeMX 工具可用于配置STM32MPU设备并获取相应的platform configuration device tree .
STM32CubeMX可能不支持上述所有属性DT bindings documentation段中描述的所有属性。 如果是这样,该工具会在生成的设备树中插入“用户部分”。 然后可以编辑这些部分以添加一些属性,并将它们一代一代地保留下来。 有关更多信息,请参见 STM32CubeMX 用户手册。