[PATCH v8 1/6] mfd: AXP20x: Add bindings documentation
Lee Jones
lee.jones at linaro.org
Mon Jan 19 01:37:18 PST 2015
On Tue, 23 Dec 2014, Chen-Yu Tsai wrote:
> From: Carlo Caione <carlo at caione.org>
>
> Bindings documentation for the AXP20x driver. In this file also
> sub-nodes are documented.
>
> Signed-off-by: Carlo Caione <carlo at caione.org>
> Acked-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> [wens at csie.org: clarify interrupt source for the axp PMIC]
> [wens at csie.org: explain dcdc-workmode in detail and trim lines to 80 chars]
> [wens at csie.org: make regulator supplies optional if using unregulated input]
> [wens at csie.org: use cubieboard2 regulator nodes as example]
> Signed-off-by: Chen-Yu Tsai <wens at csie.org>
> ---
> Documentation/devicetree/bindings/mfd/axp20x.txt | 97 ++++++++++++++++++++++++
> 1 file changed, 97 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mfd/axp20x.txt
>
> diff --git a/Documentation/devicetree/bindings/mfd/axp20x.txt b/Documentation/devicetree/bindings/mfd/axp20x.txt
> new file mode 100644
> index 000000000000..b775d8ccbc7c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/axp20x.txt
> @@ -0,0 +1,97 @@
> +AXP202/AXP209 device tree bindings
> +
> +The axp20x family current members :
> +axp202 (X-Powers)
> +axp209 (X-Powers)
> +
> +Required properties:
> +- compatible: "x-powers,axp202" or "x-powers,axp209"
> +- reg: The I2C slave address for the AXP chip
> +- interrupt-parent: The parent interrupt controller
> +- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
> +- interrupt-controller: axp20x has its own internal IRQs
> +- #interrupt-cells: Should be set to 1
> +- regulators: A node that houses a sub-node for each regulator. The regulators
> + are bound using their name as listed here: dcdc2, dcdc3, ldo1,
> + ldo2, ldo3, ldo4, ldo5. The bindings details of individual
> + regulator device can be found in:
> + Documentation/devicetree/bindings/regulator/regulator.txt with
> + the exception of x-powers,dcdc-freq. Regulators not used should
> + still be listed for completeness and that the regulator subsystem
> + properly registers them.
> +
> +- x-powers,dcdc-freq: defines the work frequency of DC-DC in KHz
> + (range: 750-1875). Default: 1.5MHz
I'm not keen on defining new properties when existing properties would
suffice. How about using clock-frequency here instead? Also it's not
common to issue this stuff using metric prefixes (KHz, MHz, etc).
Please use HZ.
> +Optional properties:
> +- regulator supplies - may be omitted if inputs are unregulated, such as using
> + the IPSOUT output from the PMIC
> + - acin-supply: The input supply for LDO1
> + - vin2-supply: The input supply for DCDC2
> + - vin3-supply: The input supply for DCDC3
> + - ldo24in-supply: The input supply for LDO2, LDO4
> + - ldo3in-supply: The input supply for LDO3
> + - ldo5in-supply: The input supply for LDO5
> +
> +Optional properties for DCDC regulators:
> +- x-powers,dcdc-workmode: 1 for PWM mode, 0 for AUTO (PWM/PFM) mode
If there only two options, please use bool.
'x-powers,dcdc-workmode-pwm' and default to auto if it's not present.
> + Default: AUTO mode
> + The DCDC regulators work in a mixed PWM/PFM mode,
> + using PFM under light loads and switching to PWM
> + for heavier loads. Forcing PWM mode trades efficiency
> + under light loads for lower output noise. This
> + probably makes sense for HiFi audio related
> + applications that aren't battery constrained.
> +
> +Example:
> +
> +axp209: pmic at 34 {
> + compatible = "x-powers,axp209";
> + reg = <0x34>;
> + interrupt-parent = <&nmi_intc>;
> + interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> + interrupt-controller;
> + #interrupt-cells = <1>;
> +
> + regulators {
> + x-powers,dcdc-freq = <1500>;
> +
> + vdd_cpu: dcdc2 {
> + regulator-always-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1450000>;
> + regulator-name = "vdd-cpu";
> + };
> +
> + vdd_int_dll: dcdc3 {
> + regulator-always-on;
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1400000>;
> + regulator-name = "vdd-int-dll";
> + };
> +
> + vdd_rtc: ldo1 {
> + regulator-always-on;
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1400000>;
> + regulator-name = "vdd-rtc";
> + };
> +
> + avcc: ldo2 {
> + regulator-always-on;
> + regulator-min-microvolt = <2700000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "avcc";
> + };
> +
> + ldo3 {
> + /* unused */
> + };
Does this need to be in the example?
> + csi1_io_2v8: ldo4 {
> + /* output on extension headers */
> + regulator-name = "csi1-io-2v8";
> + };
> + };
> +};
> +
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
More information about the linux-arm-kernel
mailing list