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

From: neil . armstrong
Date: Fri Oct 21 2022 - 04:39:14 EST


On 21/10/2022 07:07, Anand Moon wrote:
Hi Martin / Neil,

On Thu, 20 Oct 2022 at 02:10, Martin Blumenstingl
<martin.blumenstingl@xxxxxxxxxxxxxx> wrote:

Hi Anand,

On Wed, Oct 19, 2022 at 7:17 PM Anand Moon <linux.amoon@xxxxxxxxx> wrote:
[...]
+&pwm_AO_ab {

&pwm_AO_cd not _ab

No it has a conflict with CPU_B (vddcpu_b) PWM
Uh, you're right. That's probably why the Hardkernel team uses a
software based PWM implementation: [0]
In hindsight they should have used a different pad either for VDDCPU_B
or the fan.

I think the most pragmatic approach (since the "GPIO PWM" driver is
not upstream and I don't know if something like that would be accepted
upstream) is to use a GPIO based fan as you did in your initial patch.
Not sure what others think though.


When I use gpio-fan I get the following output with gpioinfo
Feature it woks as expected.

$ .sudo gpioinfo
....
gpiochip1 - 15 lines:
line 0: unnamed unused input active-high
line 1: unnamed unused input active-high
line 2: unnamed "enable" output active-high [used]
line 3: unnamed unused input active-high
line 4: unnamed unused output active-high
line 5: unnamed unused input active-high
line 6: unnamed unused input active-high
line 7: unnamed unused input active-high
line 8: unnamed "regulator-tflash_vdd" output active-high [used]
line 9: unnamed "TF_IO" output active-high [used]
line 10: unnamed "gpio-fan" output active-high [used]
line 11: unnamed "n2:blue" output active-high [used]
line 12: unnamed unused input active-high
line 13: unnamed unused input active-high
line 14: unnamed unused input active-high

When I am using pwm-fan using *pwm_ao_d_10_pins* pin is not getting
registered below hence it is not working on my end.

It's expected because it's not used as a GPIO but another function, you should look
in the pinctrl debugfs files to see it.


$ .sudo gpioinfo
....
gpiochip1 - 15 lines:
line 0: unnamed unused input active-high
line 1: unnamed unused input active-high
line 2: unnamed "enable" output active-high [used]
line 3: unnamed unused input active-high
line 4: unnamed unused output active-high
line 5: unnamed unused input active-high
line 6: unnamed unused input active-high
line 7: unnamed unused input active-high
line 8: unnamed "regulator-tflash_vdd" output active-high [used]
line 9: unnamed "TF_IO" output active-high [used]
line 10: unnamed unused output active-high
line 11: unnamed "n2:blue" output active-high [used]
line 12: unnamed unused input active-high
line 13: unnamed unused input active-high
line 14: unnamed unused input active-high

Thanks
-Anand





Best regards,
Martin


[0] https://github.com/hardkernel/linux/blob/c109dec94e7e819554830acfac4b6ed96e230179/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dtsi#L356-L359