lkml.org 
[lkml]   [2014]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 6/8] regulator: max77686: Add external GPIO control
    From
    Date
    On wto, 2014-10-28 at 09:52 +0100, Krzysztof Kozlowski wrote:
    > On pon, 2014-10-27 at 21:03 +0100, Javier Martinez Canillas wrote:
    > > Hello Krzysztof,
    > >
    > > On 10/27/2014 04:03 PM, Krzysztof Kozlowski wrote:
    > > > @@ -85,6 +91,9 @@ struct max77686_data {
    > > > struct max77686_regulator_data *regulators;
    > > > int num_regulators;
    > > >
    > > > + /* Array of size num_regulators with GPIOs for external control. */
    > > > + int *ext_control_gpio;
    > > > +
    > >
    > > The integer-based GPIO API is deprecated in favor of the descriptor-based GPIO
    > > interface (Documentation/gpio/consumer.txt). Could you please use the later?
    >
    > Sure, I can. Please have in mind that regulator core still accepts old
    > GPIO so I will have to use desc_to_gpio(). That should work... and
    > should be future-ready.

    It seems I was too hasty... I think usage of the new gpiod API implies
    completely different bindings.

    The gpiod_get() gets GPIO from a device level, not from given sub-node
    pointer. This means that you cannot have DTS like this:
    ldo21_reg: ldo21 {
    regulator-compatible = "LDO21";
    regulator-name = "VTF_2.8V";
    regulator-min-microvolt = <2800000>;
    regulator-max-microvolt = <2800000>;
    ec-gpio = <&gpy2 0 0>;
    };

    ldo22_reg: ldo22 {
    regulator-compatible = "LDO22";
    regulator-name = "VMEM_VDD_2.8V";
    regulator-min-microvolt = <2800000>;
    regulator-max-microvolt = <2800000>;
    ec-gpio = <&gpk0 2 0>;
    };


    I could put GPIOs in device node:

    max77686_pmic@09 {
    compatible = "maxim,max77686";
    interrupt-parent = <&gpx0>;
    interrupts = <7 0>;
    reg = <0x09>;
    #clock-cells = <1>;
    ldo21-gpio = <&gpy2 0 0>;
    ldo22-gpio = <&gpk0 2 0>;

    ldo21_reg: ldo21 {
    regulator-compatible = "LDO21";
    regulator-name = "VTF_2.8V";
    regulator-min-microvolt = <2800000>;
    regulator-max-microvolt = <2800000>;
    };

    ldo22_reg: ldo22 {
    regulator-compatible = "LDO22";
    regulator-name = "VMEM_VDD_2.8V";
    regulator-min-microvolt = <2800000>;
    regulator-max-microvolt = <2800000>;
    };

    This would work but I don't like it. The properties of a regulator are
    above the node configuring that regulator.

    Any ideas?

    Best regards,
    Krzysztof




    \
     
     \ /
      Last update: 2014-10-28 13:41    [W:2.514 / U:0.796 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site