Hello Rob, 2017-06-09 16:03 GMT+02:00 Rob Herring <robh@xxxxxxxxxx>: > On Wed, Jun 07, 2017 at 12:32:39PM +0200, Enric Balletbo i Serra wrote: >> This patch adds a new binding documentation for the TPS65217 MFD and >> updates the documentation for all the sub-devices in accordance to get >> each individual sub-driver functioning correctly. > > Explain why breaking compatibility is okay. > We had some discussion in patch 4 that make me rethink a bit all this, please let me send a new version and continue the discussion there (now I'm not sure if I'll break the compatibility or not) But let me ask a question. The TPS65217 MFD has different sub-nodes (charger, backlight, pwrbutton, regulators) in DT, I suspect the answer is no, but is it ok that some of them were not described in the DT because there is nothing to configure? i.e: Have this because the resources of charger and pwrbutton are static so can be hard-coded in the driver &tps { compatible = "ti,tps65217"; interrupt-controller; #interrupt-cells = <1>; regulators { #address-cells = <1>; #size-cells = <0>; dcdc1_reg: regulator@0 { reg = <0>; ... }; }; instead of : &tps { compatible = "ti,tps65217"; interrupt-controller; #interrupt-cells = <1>; charger { compatible = "ti,tps65217-charger"; interrupts = <0>, <1>; interrupt-names = "USB", "AC"; }; pwrbutton { compatible = "ti,tps65217-pwrbutton"; interrupts = <2>; }; regulators { #address-cells = <1>; #size-cells = <0>; dcdc1_reg: regulator@0 { reg = <0>; ... }; }; Best regards, Enric >> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx> >> --- >> .../bindings/input/tps65218-pwrbutton.txt | 2 +- >> .../bindings/leds/backlight/tps65217-backlight.txt | 24 ++--- >> Documentation/devicetree/bindings/mfd/tps65217.txt | 100 +++++++++++++++++++++ >> .../devicetree/bindings/regulator/tps65217.txt | 8 +- >> 4 files changed, 119 insertions(+), 15 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/mfd/tps65217.txt >> >> diff --git a/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt b/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt >> index 8682ab6..603a3f0 100644 >> --- a/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt >> +++ b/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt >> @@ -1,7 +1,7 @@ >> Texas Instruments TPS65217 and TPS65218 power button >> >> This module is part of the TPS65217/TPS65218. For more details about the whole >> -TPS65217 chip see Documentation/devicetree/bindings/regulator/tps65217.txt. >> +TPS65217 chip see Documentation/devicetree/bindings/mfd/tps65217.txt. >> >> This driver provides a simple power button event via an Interrupt. >> >> diff --git a/Documentation/devicetree/bindings/leds/backlight/tps65217-backlight.txt b/Documentation/devicetree/bindings/leds/backlight/tps65217-backlight.txt >> index 5fb9279..a1bc465 100644 >> --- a/Documentation/devicetree/bindings/leds/backlight/tps65217-backlight.txt >> +++ b/Documentation/devicetree/bindings/leds/backlight/tps65217-backlight.txt >> @@ -1,11 +1,13 @@ >> -TPS65217 family of regulators >> +Texas Instruments TPS65217 backlight regulator >> + >> +This module is part of the TPS65217. For more details about the whole >> +TPS65217 chip see Documentation/devicetree/bindings/mfd/tps65217.txt. >> >> The TPS65217 chip contains a boost converter and current sinks which can be >> used to drive LEDs for use as backlights. >> >> Required properties: >> -- compatible: "ti,tps65217" >> -- reg: I2C slave address >> +- compatible: "ti,tps65217-bl" >> - backlight: node for specifying WLED1 and WLED2 lines in TPS65217 >> - isel: selection bit, valid values: 1 for ISEL1 (low-level) and 2 for ISEL2 (high-level) >> - fdim: PWM dimming frequency, valid values: 100, 200, 500, 1000 >> @@ -15,13 +17,13 @@ Each regulator is defined using the standard binding for regulators. >> >> Example: >> >> - tps: tps@24 { >> - reg = <0x24>; >> - compatible = "ti,tps65217"; >> - backlight { >> - isel = <1>; /* 1 - ISET1, 2 ISET2 */ >> - fdim = <100>; /* TPS65217_BL_FDIM_100HZ */ >> - default-brightness = <50>; >> - }; >> +&tps { >> + backlight { >> + compatible = "ti,tps65217-bl"; >> + status = "okay"; >> + isel = <1>; /* 1 - ISET1, 2 ISET2 */ >> + fdim = <100>; /* TPS65217_BL_FDIM_100HZ */ >> + default-brightness = <50>; >> }; >> +}; >> >> diff --git a/Documentation/devicetree/bindings/mfd/tps65217.txt b/Documentation/devicetree/bindings/mfd/tps65217.txt >> new file mode 100644 >> index 0000000..40c84ba >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mfd/tps65217.txt >> @@ -0,0 +1,100 @@ >> +Texas Instruments TPS65217 Single-Chip PMIC for Battery-Powered Systems >> + >> +Required properties: >> +- compatible: "ti,tps65217" >> +- reg: I2C slave address. >> +- interrupt-controller: Marks the device node as an interrupt controller. >> +- #interrupt-cells: The number of cells to describe an IRQ, this should be 1. >> +- backlight: Child node that specify the backlight regulator sub-device. See: >> + Documentation/devicetree/bindings/leds/backlight/tps65217-backlight.txt >> +- charger: Child node that specify the charger sub-device. See: >> + Documentation/devicetree/bindings/power/supply/tps65217_charger.txt >> +- pwrbutton: Child node that specify the power button sub-device. See: >> + Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt >> +- regulators: List of child nodes that specify the regulator initialization >> + data. See: >> + Documentation/devicetree/bindings/regulator/tps65217.txt. >> + >> +Optional properties: >> +- ti,pmic-shutdown-controller: Telling the PMIC to shutdown on PWR_EN toggle. >> + >> +Example: >> + >> + tps: tps@24 { >> + compatible = "ti,tps65217"; >> + interrupt-controller; >> + #interrupt-cells = <1>; >> + >> + ti,pmic-shutdown-controller; >> + >> + backlight { >> + compatible = "ti,tps65217-bl"; >> + status = "disabled"; >> + }; >> + >> + charger { >> + compatible = "ti,tps65217-charger"; >> + status = "disabled"; >> + }; >> + >> + pwrbutton { >> + compatible = "ti,tps65217-pwrbutton"; >> + status = "disabled"; >> + }; >> + >> + regulators { >> + compatible = "ti,tps65217-pmic"; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + dcdc1_reg: dcdc1 { >> + regulator-min-microvolt = <900000>; >> + regulator-max-microvolt = <1800000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + >> + dcdc2_reg: dcdc2 { >> + regulator-min-microvolt = <900000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + >> + dcdc3_reg: dcc3 { >> + regulator-min-microvolt = <900000>; >> + regulator-max-microvolt = <1500000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + >> + ldo1_reg: ldo1 { >> + regulator-min-microvolt = <1000000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + >> + ldo2_reg: ldo2 { >> + regulator-min-microvolt = <900000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + >> + ldo3_reg: ldo3 { >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + >> + ldo4_reg: ldo4 { >> + regulator-min-microvolt = <1800000>; >> + regulator-max-microvolt = <3300000>; >> + regulator-boot-on; >> + regulator-always-on; >> + }; >> + }; >> + }; >> + >> diff --git a/Documentation/devicetree/bindings/regulator/tps65217.txt b/Documentation/devicetree/bindings/regulator/tps65217.txt >> index 4f05d20..2d9b519 100644 >> --- a/Documentation/devicetree/bindings/regulator/tps65217.txt >> +++ b/Documentation/devicetree/bindings/regulator/tps65217.txt >> @@ -1,8 +1,10 @@ >> -TPS65217 family of regulators >> +Texas Instruments TPS65217 family of regulators >> + >> +This module is part of the TPS65217. For more details about the whole >> +TPS65217 chip see Documentation/devicetree/bindings/mfd/tps65217.txt. >> >> Required properties: >> -- compatible: "ti,tps65217" >> -- reg: I2C slave address >> +- compatible: "ti,tps65217-pmic" >> - regulators: list of regulators provided by this controller, must be named >> after their hardware counterparts: dcdc[1-3] and ldo[1-4] >> - regulators: This is the list of child nodes that specify the regulator > > regulators twice? Fix that while you're here. > Sure, I can add this change as well. >> -- >> 2.9.3 >> -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html