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