42 lines
1.7 KiB
Text
42 lines
1.7 KiB
Text
Power management Silent mode is a boot up mode with display and
|
|
audio disabled. This mode allows the platform to boot up the kernel
|
|
without enabling the UI, thereby masking the overall system boot latency.
|
|
Predominant usage could be seen in automotive applications where
|
|
boot latency is critical.
|
|
Top 2 use cases could be:
|
|
- One possible occasion for booting silently is when the driver approaches the
|
|
vehicle and based on the trigger by proximity sensor the vehicle does a remote
|
|
start before driver comes in the car.
|
|
|
|
- Another might be if the system needs to run in the middle of
|
|
the night to perform updates.
|
|
|
|
Add " pm_silentmode_kernel_state" viewable/editable via sysfs.
|
|
|
|
Kernel driver to monitor external GPIO input to indicate boot into
|
|
kernel silent mode or not. This driver sets up the GPIO and links it
|
|
up with an IRQ that is rising/falling edge triggered.
|
|
On the GPIO rising edge, the IRQ thread is used to clear the sysfs
|
|
in the PM framework that holds the state of the pm_silentmode_kernel_state.
|
|
On the GPIO falling edge, the IRQ thread is used to set the sysfs
|
|
in the PM framework that holds the state of the pm_silentmode_kernel_state.
|
|
|
|
The Device tree entry for silent mode can be used to register a GPIO
|
|
to the driver framework and use it to communicate to the Vehicle
|
|
interface processor.
|
|
|
|
Required properties:
|
|
|
|
- compatible: "qcom,silent-mode"
|
|
- qcom,silent-boot-gpio: GPIO needed HW interface from VIP to SoC
|
|
- interrupts: Assign interrupt that is dual edge triggered
|
|
- interrupt-names: Name of the interrupt under /proc/interrupt
|
|
|
|
Example:
|
|
|
|
qcom,silent-mode {
|
|
compatible = "qcom,silent-mode";
|
|
qcom,silent-boot-gpio = <&pm8150_1_gpios 6 GPIO_ACTIVE_LOW>;
|
|
interrupts = < 0xc5 0 IRQ_TYPE_EDGE_BOTH>;
|
|
interrupt-names = "silent_pm8150_1_gpio6";
|
|
};
|