qemu-patch-raspberry4/include/hw/misc
Hao Wu 380a37e498 hw/misc: Add NPCM7XX MFT Module
This patch implements Multi Function Timer (MFT) module for NPCM7XX.
This module is mainly used to configure PWM fans. It has just enough
functionality to make the PWM fan kernel module work.

The module takes two input, the max_rpm of a fan (modifiable via QMP)
and duty cycle (a GPIO from the PWM module.) The actual measured RPM
is equal to max_rpm * duty_cycle / NPCM7XX_PWM_MAX_DUTY. The RPM is
measured as a counter compared to a prescaled input clock. The kernel
driver reads this counter and report to user space.

Refs:
https://github.com/torvalds/linux/blob/master/drivers/hwmon/npcm750-pwm-fan.c

Reviewed-by: Doug Evans <dje@google.com>
Reviewed-by: Tyrone Ting <kfting@nuvoton.com>
Signed-off-by: Hao Wu <wuhaotsh@google.com>
Message-id: 20210311180855.149764-3-wuhaotsh@google.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2021-03-12 12:48:56 +00:00
..
macio macio: wire macio GPIOs to OpenPIC using sysbus IRQs 2021-01-13 12:21:21 +00:00
a9scu.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
allwinner-cpucfg.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
allwinner-h3-ccu.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
allwinner-h3-dramc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
allwinner-h3-sysctrl.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
allwinner-sid.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
arm11scu.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
arm_integrator_debug.h arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
armsse-cpu-pwrctrl.h hw/misc/sse-cpu-pwrctrl: Implement SSE-300 CPU<N>_PWRCTRL register block 2021-03-08 17:20:02 +00:00
armsse-cpuid.h hw/arm/mps2: Update old infocenter.arm.com URLs 2021-03-08 11:54:16 +00:00
armsse-mhu.h hw/arm/mps2: Update old infocenter.arm.com URLs 2021-03-08 11:54:16 +00:00
aspeed_lpc.h hw/misc: Model KCS devices in the Aspeed LPC controller 2021-03-09 12:01:28 +01:00
aspeed_scu.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
aspeed_sdmc.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
aspeed_xdma.h Fix SPDX-License-Identifier typos 2021-02-20 12:36:19 +01:00
auxbus.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
avr_power.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2835_cprman.h hw/misc/bcm2835_cprman: add the DSI0HSCK multiplexer 2020-10-27 11:10:44 +00:00
bcm2835_cprman_internals.h hw/misc/bcm2835_cprman: add sane reset values to the registers 2020-10-27 11:10:44 +00:00
bcm2835_mbox.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2835_mbox_defs.h hw/arm/bcm283x: Correct the license text 2020-03-23 17:22:30 +00:00
bcm2835_mphi.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2835_property.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2835_rng.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2835_thermal.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cbus.h Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
emc141x_regs.h hw/misc: add an EMC141{3,4} device model 2020-12-10 12:11:03 +01:00
empty_slot.h hw/misc/empty_slot: Name the slots when created 2020-06-09 06:59:44 +02:00
grlib_ahb_apb_pnp.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx6_ccm.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx6_src.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx6ul_ccm.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx7_ccm.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx7_gpr.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx7_snvs.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx25_ccm.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx31_ccm.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx_ccm.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx_rngc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
iotkit-secctl.h hw/misc/iotkit-secctl.c: Implement SSE-300 PID register values 2021-03-08 17:20:01 +00:00
iotkit-sysctl.h hw/misc/iotkit-sysctl: Handle SSE-300 changes to PDCM_PD_*_SENSE registers 2021-03-08 17:20:02 +00:00
iotkit-sysinfo.h hw/misc/iotkit-sysinfo.c: Implement SYS_CONFIG1 and IIDR 2021-03-08 17:20:01 +00:00
ivshmem.h ivshmem: add check on protocol version in QEMU 2015-10-24 18:03:18 +02:00
led.h hw/misc/led: Allow connecting from GPIO output 2020-10-26 13:44:58 +01:00
mac_via.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
max111x.h hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
mchp_pfsoc_dmc.h hw/misc: Add Microchip PolarFire SoC DDR Memory Controller support 2020-11-03 07:17:23 -08:00
mchp_pfsoc_ioscb.h hw/misc: Add Microchip PolarFire SoC IOSCB module support 2020-11-03 07:17:23 -08:00
mchp_pfsoc_sysreg.h hw/misc: Add Microchip PolarFire SoC SYSREG module support 2020-11-03 07:17:23 -08:00
mips_cmgcr.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
mips_cpc.h hw/mips: Fix Lesser GPL version number 2020-11-03 16:51:13 +01:00
mips_itu.h hw/mips: Fix Lesser GPL version number 2020-11-03 16:51:13 +01:00
mos6522.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
mps2-fpgaio.h hw/misc/mps2-fpgaio: Support AN547 DBGCTRL register 2021-03-08 17:20:03 +00:00
mps2-scc.h hw/misc/mps2-scc: Implement CFG_REG5 and CFG_REG6 for MPS3 AN524 2021-03-06 13:30:39 +00:00
msf2-sysreg.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
npcm7xx_clk.h hw/timer: Refactor NPCM7XX Timer to use CLK clock 2021-01-12 21:19:02 +00:00
npcm7xx_gcr.h hw/misc: Add NPCM7xx System Global Control Registers device model 2020-09-14 14:24:15 +01:00
npcm7xx_mft.h hw/misc: Add NPCM7XX MFT Module 2021-03-12 12:48:56 +00:00
npcm7xx_pwm.h hw/misc: Add GPIOs for duty in NPCM7xx PWM 2021-03-12 12:48:56 +00:00
npcm7xx_rng.h hw/misc: Add npcm7xx random number generator 2020-10-27 11:10:10 +00:00
nrf51_rng.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pca9552.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
pca9552_regs.h misc: add pca9552 LED blinker model 2018-06-08 13:15:32 +01:00
pvpanic.h hw/misc/pvpanic: add PCI interface support 2021-01-29 10:47:28 +00:00
sifive_e_prci.h sifive: Use DECLARE_*CHECKER* macros 2020-09-18 13:49:48 -04:00
sifive_test.h sifive: Use DECLARE_*CHECKER* macros 2020-09-18 13:49:48 -04:00
sifive_u_otp.h hw/misc/sifive_u_otp: Add backend drive support 2020-10-22 12:00:50 -07:00
sifive_u_prci.h sifive: Use DECLARE_*CHECKER* macros 2020-09-18 13:49:48 -04:00
stm32f2xx_syscfg.h hw/misc/stm32f2xx_syscfg: Remove extraneous IRQ 2020-11-10 11:03:48 +00:00
stm32f4xx_exti.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
stm32f4xx_syscfg.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
tmp105_regs.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
tz-mpc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
tz-msc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
tz-ppc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
unimp.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
vmcoreinfo.h qom: fix objects with improper parent type 2020-10-12 11:50:22 -04:00
xlnx-versal-xramc.h hw/misc: versal: Add a model of the XRAM controller 2021-03-12 12:40:09 +00:00
zynq-xadc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00