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";
	};
