[PATCHv3] arm64: dts: meson: Enable active coling using gpio-fan on Odroid N2/N2+
neil.armstrong at linaro.org
neil.armstrong at linaro.org
Thu Oct 27 05:49:12 PDT 2022
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.
>
> 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
More information about the linux-amlogic
mailing list