Broadcom AVS CPUfreq driver
===========================

This driver provides voltage and frequency scaling on Broadcom SoCs using
the AVS firmware with DVFS support. The AVS firmware is running on its own
co-processor. The driver supports both uniprocessor (UP) and symmetric
multiprocessor (SMP) systems which share clock and voltage across all CPUs.

Actual voltage and frequency scaling is done solely by the AVS firmware.
This driver does not change frequency or voltage itself. It provides a
standard CPUfreq interface to the rest of the kernel and to userland. It
interfaces with the AVS firmware to effect the requested changes and to
report back the current system status in a way that is expected by existing
tools.

This driver requires two DT nodes. One node (brcm,avs-cpu-data-mem)
references the mailbox register used to communicate with the AVS CPU. The
second node (brcm,avs-cpu-l2-intr) is required to trigger an interrupt on
the AVS CPU. The interrupt tells the AVS CPU that it needs to process a
command sent to it by this driver. Interrupting the AVS CPU is mandatory for
commands to be processed.



Node brcm,avs-cpu-data-mem
--------------------------

Required properties:
- compatible: Sould be one of: brcm,avs-cpu-data-mem, brcm,bcm7271-avs-cpu-data-mem
              or brcm,bcm7268-avs-cpu-data-mem
- reg: Specifies base physical address and size of the registers.

Optional properties:
- interrupts: The interrupt that the AVS CPU will use to interrupt the host
              when a command completed.
- interrupt-parent: The interrupt controller the above interrupt is routed
                    through.
- interrupt-names: The name of the interrupt used to interupt the host.

Either none of the interrupt properties may be defined or all three must be
present. Without the interrupt properties, the driver will operate in
polling mode.


Node brcm,avs-cpu-l2-intr
-------------------------

Required properties:
- compatible: Sould be one of: brcm,avs-cpu-l2-intr, brcm,bcm7271-avs-cpu-l2-intr
              or brcm,bcm7268-avs-cpu-l2-intr
- reg: Specifies base physical address and size of the registers.

Optional properties:
- None


Example
=======

	avs-cpu-data-mem@f04c4000 {
		compatible = "brcm,bcm7271-avs-cpu-data-mem",
				"brcm,avs-cpu-data-mem";
		reg = <0xf04c4000 0x60>;
		interrupts = <0x1a>;
		interrupt-parent = <&avs_host_l2_intc>;
		interrupt-names = "sw_intr";
	};

	avs-cpu-l2-intr@f04d1100 {
		compatible = "brcm,bcm7271-avs-cpu-l2-intr",
				"brcm,avs-cpu-l2-intr";
		reg = <0xf04d1100 0x10>;
	};
