Linux驱动中-时钟-cpu-soc三大节点区分

1.简述

设备树模型中clk,cpu,soc三类节点的划分,是嵌入式SOC的典型组织方式。

2.模块内容

2.1 clk时钟

CLK时钟控制器,是管理整个SOC的时钟生成、分频、使能,主要内容:晶振、PLL、时钟ID,分频系数等。 CLK时钟控制器本质上是硬件CRU/CCU的设备树描述,对应内核的clk-driver。 核心功能 1)生成各种频率的时钟,如UART的115200波特率时钟,CPU的1GHZ主频时钟 2)控制时钟的开启、关闭(外设休眠时关闭时钟以省电) 3)动态调整时钟的频率(CPU的调频、display分辨率切换时调整像素时钟)

2.2 cpu核心

CPU核心,主要是配置CPU的主频、核数、缓存、电源管理等。 比如全志的一个cpu型号:

cpus {
        cpu {
            compatible = "arm,arm926ej-s";
            device_type = "cpu";
        };
    };

主要功能是描述清楚cpu的架构、核数等信息。

2.3 SOC外设控制器

SOC内部包含所有外设的控制器节点,比如:串口、iic、spi,csi/dsi(摄像头、显示)、PCIE、GPIO等。 本质上SOC内核所有外设控制的“容器节点”,无实际硬件对应,仅用于组织外设节点。 按地址控制组织外设节点(SOC外设都有独立的物理地址)