MFC r341268, r342003-r342007, r342087-r342088, r342091


MFC r341268, r342003-r342007, r342087-r342088, r342091

r341268 by manu:
arm64: allwinner: Add a dtbo to have cpu operating points

This enables cpufreq on A64 boards.

r342003 by manu:
Add a pwm subsystem so we can configure pwm controller from kernel and userland.

The pwm subsystem consist of API for PWM controllers, pwmbus to register them
and a pwm(8) utility to talk to them from userland.

Reviewed by: oshgobo (capsicum), bcr (manpage), 0mp (manpage)
Differential Revision: https://reviews.freebsd.org/D17938

r342004 by manu:
arm64: allwinner: Add pwm driver

Add a pwm driver for Allwinner PWM
Add pwm and aw_pwm to the GENERIC kernel

r342005 by manu:
arm64: allwinner: Add DTSO for pwm and r_pwm

Those are both dtso (overlays) for the two pwm controllers found on the A64.

r342006 by manu:
arm64: allwinner: Fix pwm dtso

Double patched files ended up in the tree

Reported by: kevans

r342007 by manu:
pwm: Fix some arches by using %ju and casting to uintmax_t

Reported by: ci.freebsd.org

r342087 by manu:
pwm: Convert period and duty to unsigned int

We don't need a 64 bits value to store nanoseconds

Discused with: ian, jhibbits

r342088 by manu:
pwm(8): Add percentage value support for duty cycle

r342091 by manu:
allwinner: aw_pwm: Read value at attach

The booloaded might have configured the pwm controller so read the values.


ianAuthored on
Differential Revision
D17938: Add a PWM subsystem
rS349414: o In iflib_txq_drain():