Hi Krzysztof,

On 2020-04-28 3:20 a.m., Krzysztof Kozlowski wrote:
> On Sun, Apr 26, 2020 at 11:35:57AM -0700, Jonathan Bakker wrote:
>> Add support for following devices:
>>   - touchkeys connected over i2c-gpio
>>   - s6e63m0 panel connected over spi-gpio
>>   - fsa9480 microusb switch over i2c-gpio
>>   - wm8994 over i2c-gpio (no machine driver yet)
>>   - all common i2c-gpio devices
> 
> Please split it per functionality, e.g.:
> 1. Add sound,
> 2. Add panel,
> 3. Add touchkeys (unless part of panel),
> 4. The remaining i2c-gpio devices without bindings could go as one.

Ok, will do.

> 
>>
>> Signed-off-by: Jonathan Bakker <[email protected]>
>> Signed-off-by: PaweÅ‚ Chmiel <[email protected]>
>> ---
>>  arch/arm/boot/dts/s5pv210-aries.dtsi      | 282 ++++++++++++++++++++--
>>  arch/arm/boot/dts/s5pv210-fascinate4g.dts |   6 +
>>  2 files changed, 270 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi 
>> b/arch/arm/boot/dts/s5pv210-aries.dtsi
>> index f83df426f2b6..ef966d13d83d 100644
>> --- a/arch/arm/boot/dts/s5pv210-aries.dtsi
>> +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi
>> @@ -12,8 +12,14 @@
>>      compatible = "samsung,aries", "samsung,s5pv210";
>>  
>>      aliases {
>> +            i2c4 = &i2c_sound;
>> +            i2c5 = &i2c_accel;
>>              i2c6 = &i2c_pmic;
>> +            i2c7 = &i2c_musb;
>>              i2c9 = &i2c_fuel;
>> +            i2c10 = &i2c_touchkey;
>> +            i2c11 = &i2c_prox;
>> +            i2c12 = &i2c_magnetometer;
>>      };
>>  
>>      memory@30000000 {
>> @@ -48,6 +54,18 @@
>>              gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
>>      };
>>  
>> +    touchkey_vdd: regulator-fixed-1 {
>> +            compatible = "regulator-fixed";
>> +            regulator-name = "VTOUCH_3.3V";
>> +            regulator-min-microvolt = <3300000>;
>> +            regulator-max-microvolt = <3300000>;
>> +            enable-active-high;
>> +            gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>;
>> +
>> +            pinctrl-names = "default";
>> +            pinctrl-0 = <&touchkey_vdd_ena>;
>> +    };
>> +
>>      wifi_pwrseq: wifi-pwrseq {
>>              compatible = "mmc-pwrseq-simple";
>>              reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
>> @@ -57,7 +75,69 @@
>>              power-off-delay-us = <500>;
>>      };
>>  
>> -    i2c_pmic: i2c-gpio-0 {
>> +    i2c_sound: i2c-gpio-0 {
>> +            compatible = "i2c-gpio";
>> +            sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
>> +            scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
>> +            i2c-gpio,delay-us = <2>;
>> +            #address-cells = <1>;
>> +            #size-cells = <0>;
>> +
>> +            pinctrl-names = "default";
>> +            pinctrl-0 = <&sound_i2c_pins>;
>> +
>> +            wm8994: wm8994@1a {
>> +                    compatible = "wlf,wm8994";
>> +                    reg = <0x1a>;
>> +
>> +                    #sound-dai-cells = <0>;
>> +
>> +                    gpio-controller;
>> +                    #gpio-cells = <2>;
>> +
>> +                    clocks = <&clocks MOUT_CLKOUT>;
>> +                    clock-names = "MCLK1";
>> +
>> +                    AVDD2-supply = <&buck3_reg>;
>> +                    DBVDD-supply = <&buck3_reg>;
> 
> No such supply, check the bindings.
> 

Well, it may not be in the bindings, but the driver definitely requires it :) 
See drivers/mfd/wm8994-core.c

What's the best way of dealing with this situation?

>> +                    CPVDD-supply = <&buck3_reg>;
>> +                    SPKVDD1-supply = <&buck3_reg>;
>> +                    SPKVDD2-supply = <&buck3_reg>;
>> +
>> +                    wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100
>> +                                    0xa101 0x0100 0x8100 0x0100 0x0100
>> +                                    0x0100>;
>> +
>> +                    wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
>> +                    wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
>> +
>> +                    wlf,lineout1-se;
>> +                    wlf,lineout2-se;
>> +
>> +                    assigned-clocks = <&clocks MOUT_CLKOUT>;
>> +                    assigned-clock-rates = <0>;
>> +                    assigned-clock-parents = <&xusbxti>;
>> +
>> +                    pinctrl-names = "default";
>> +                    pinctrl-0 = <&codec_ldo>;
>> +            };
>> +    };
>> +
>> +    i2c_accel: i2c-gpio-1 {
>> +            compatible = "i2c-gpio";
>> +            sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
>> +            scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
>> +            i2c-gpio,delay-us = <2>;
>> +            #address-cells = <1>;
>> +            #size-cells = <0>;
>> +
>> +            pinctrl-names = "default";
>> +            pinctrl-0 = <&accel_i2c_pins>;
>> +
>> +            /* bma023 accelerometer, no mainline binding */
> 
> status disabled ... unless you need it for user-space I2C tools?
> 

Nope, but wanted to add them all in due to adding the si4709 in galaxys.  I was 
having
issues with accidentally overwriting previously named nodes (ie having 
i2c-gpio-0 in
both the common dtsi and the device specific dts) so I wanted to get the numbers
nailed down.



<snip>

>>  
>>  &pwm {
>> diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts 
>> b/arch/arm/boot/dts/s5pv210-fascinate4g.dts
>> index 94dcb9b64b9a..42e6e2de197d 100644
>> --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts
>> +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts
>> @@ -278,3 +278,9 @@
>>              PIN_SLP(mp07-7, INPUT, DOWN);
>>      };
>>  };
>> +
>> +&wm8994 {
>> +    /* GPIO3 (BCLK2) and GPIO4 (LRCLK2) as outputs */
>> +    wlf,gpio-cfg = <0xa101 0x8100 0x8100 0x8100 0x8100 0xa101
>> +            0x0100 0x8100 0x0100 0x0100 0x0100>;
> 
> Indent the line till opening <.

Will do.

> 
> Best regards,
> Krzysztof
> 


Thanks,
Jonathan

Reply via email to