[Macchiato] Fan control

Duncan dguthrie at posteo.net
Fri Apr 6 22:26:00 BST 2018


Hello Matt,

Matt Sealey:
> According to the schematics it's on CP0_MPP48 which I do not believe
> is touched by anything in EFI or Linux. There's no I2C to require,
> just I assume an ability to multiplex something useful on that pin -
> pinctrl driver remarks that it's got GPIO and I'm fairly sure the 8040
> doesn't even have any PWM functionality (unless you count the TDM, you
> could play with the frame sync..)
> 
>     https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pinctrl/mvebu/pinctrl-armada-cp110.c#n466
> 

So as far as I understand from your reply, the PWM pin is wired up, but
that the SoC itself doesn't have native PWM functionality built-in?

> But what you've got here is a potential for a GPIO - on or off - or
> the MDIO clock for 'XG' which probably means losing an ethernet port
> since you can't clock the PHY and use it for PWM.
> 
> You could write a driver that took a rapid firing timer event to
> change the GPIO state, but that'd probably consume enough power and
> reduce idle state residency enough to only make matters worse.

Let's say I wrote a driver that could interface with this pin, and I was
able to control fan speed this way (if this is possible). Does the
Armada 8040 SoC have any infrastructure for detecting its temperature,
and the temperature of other parts of the board?

My main goal here is to allow me to vary the fan speed of the
side-blowers in the case I'm using; it seems like a terrible waste of
power to have them on at full speed, given the board is going to be idle
quite a lot, and even at high load probably doesn't need the fans at
full speed.

All the best, and apologies in advance if I misunderstood your reply,
Duncan



More information about the Macchiato mailing list