PMIC Configuration
During the system boot, MB1 enables system power rails for CPU, CORE, and DRAM and completes some system PMIC configurations. The typical configurations are:
Enabling rails
Setting rail voltages
Configuring FPS
Enabling and setting of voltages of rails might require the following platform-specific configurations:
I2C commands to devices
PWM commands to devices
MMIO accesses to Tegra registers, read-modify-write or write-only
Delay after the commands
The entries in PMIC configuration files are common or rail-specific.
Common Configuration
The common configuration parameters apply to all rails.
Each PMIC common configuration is of the following form:
/ {
pmic {
<parameter> = <value>;
};
};
where <parameter>
is one of the following:
<parameter> |
Description |
---|---|
rail-count |
Number of rails in the configuration file. |
command-retries-count |
The number of allowed command attempts. |
wait-before-start-bus-clear-us |
Wait timeout in microseconds before issuing the bus clear command. - The wait time is calculated as 1 <<n microseconds where n is provided by this parameter. |
Rail-Specific Configuration
The rail-specific configuration are divided into blocks:
Each rail can have one or more blocks.
Each block can have only one command type: - I2C - PWM - MMIO
Each PMIC rail-specific configuration is of the following form:
/ {
pmic {
<rail-name> {
block@<index> {
<parameter> = <value>;
};
};
};
};
where:
<rail-name>
identifies the rail and is one of the following:
Name |
Description |
---|---|
system |
System PMIC configuration. |
cpu/cpu0 |
CPU rail configuration. |
cpu1 |
CPU rail configuration. |
core |
Core/SOC rail configuration. |
memio |
DRAM-related rail configuration. |
thermal |
External thermal sensor configuration. |
platform |
Platform’s other 12C configuration. |
block-<index>
: The rail-specific commands are divided into blocks.Each rail can have multiple blocks, and each block of rails is indexed starting from 0.
<parameter>
is one of the following:
<parameter> |
Description |
---|---|
|
Type of commands in the block. Valid properties are i2c-controller, pwm or mmio. |
commands {
<group-name> {
command@N {
reg-addr = <reg-address>; mask = <reg-mask>;
value = <reg-value>;
};
};
};
|
N is the sequential number for the command starting from 0. MMIO or I2C commands (based on type).
|
|
12C parameter (valid only if the block has the i2c-controller property).
|
|
PWM parameter (valid only if the block has the pwm property).
|