[PATCHv3] arm64: dts: meson: Enable active coling using gpio-fan on Odroid N2/N2+

Neil Armstrong narmstrong.kernel at gmail.com
Thu Oct 27 06:16:13 PDT 2022


On 27/10/2022 14:49, neil.armstrong at linaro.org wrote:
> Hi,
> 
> On 26/10/2022 18:02, Anand Moon wrote:
>> Hi Neil,
> 
> <snip>
> 
>>
>> When I try to use pwm_AO_cd,,
>> Either one of the PWM binds will fail to get the following error.
>>
>>   &pwm_AO_cd {
>> -       pinctrl-0 = <&pwm_ao_d_e_pins>;
>> +       pinctrl-0 = <&pwm_ao_d_e_pins>, <&pwm_ao_d_10_pins>;
>>          pinctrl-names = "default";
>>          clocks = <&xtal>;
>>          clock-names = "clkin1";
>>
>> [    3.941700] pwm-regulator regulator-vddcpu-b: error -EBUSY: Failed to get PWM
>> [    3.943198] pwm-regulator: probe of regulator-vddcpu-b failed with error -16
>>
>> [    3.956356] pwm-fan pwm-fan: error -EBUSY: Could not get PWM
>> [    3.956396] pwm-fan: probe of pwm-fan failed with error -16
> 
> Yeah because PWM "D" is already used by the "pwm_AO_ab" controller, so you can't use it for the FAN.

I was meaning regulator-vddcpu-b.

> 
>>
>> Below are my changes with  pwm_AO_ab
>> ---------------------------------------------------------------------------------------------
>> alarm at odroid-n2:~/linux-amlogic-5.y-devel$ git diff
>> arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
>> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
>> b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
>> index fd3fa82e4c33..d038ba1e2453 100644
>> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
>> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
>> @@ -39,6 +39,14 @@ emmc_pwrseq: emmc-pwrseq {
>>                  reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
>>          };
>>
>> +       fan: pwm-fan {
>> +               compatible = "pwm-fan";
>> +               pwms = <&pwm_AO_ab 1 1250 0>;
> 
> Here you use the "B" PWM signal, not the D.
> 
>> +               fan-supply = <&vcc_5v>;
>> +               #cooling-cells = <2>;
>> +               cooling-levels = <0 100 170 230>;
>> +       };
>> +
>>          leds {
> 
> <snip>
> 
>>
>> +&pwm_AO_ab {
>> +       pinctrl-0 = <&pwm_ao_d_10_pins>;
> 
> The "pwm_AO_ab" controller only controls the PWM "A" & "B signals, not the "D" !
> 
> This basically enables the PWM "D" pin function to GPIOAO_10, it doesn't assign it to the "pwm_AO_ab" controller.
> 
> So by enabling this pinctrl, it will duplicate the pwm_ao_d_e_pins signal to pwm_ao_d_10_pins, this is why the FAN spins non-stop.
> 
>> +       pinctrl-names = "default";
>> +       clocks = <&xtal>;
>> +       clock-names = "clkin1";
>> +       status = "okay";
>> +};
>> +
>>   &pwm_AO_cd {
>>          pinctrl-0 = <&pwm_ao_d_e_pins>;
>>          pinctrl-names = "default";
>> -------------------------------------------------------------------------------------------
>>>>
>>>> Thanks
>>>>
>>>> -Anand
>>>
>>> Neil
> 
> Neil
> 
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic




More information about the linux-amlogic mailing list