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 
	 
	
	
		 
	
	
		
			
			
			
			
			
			2021-01-13 12:21:21 +00:00 
		 
	
		
			
			
			
			
			
			2020-09-14 14:23:19 +01:00 
		 
	
		
			
			
			
			
			
			2020-03-12 16:27:33 +00:00 
		 
	
		
			
			
			
			
			
			2020-03-12 16:27:33 +00:00 
		 
	
		
			
			
			
			
			
			2020-03-30 13:18:58 +01:00 
		 
	
		
			
			
			
			
			
			2020-03-12 16:27:33 +00:00 
		 
	
		
			
			
			
			
			
			2020-12-18 15:20:17 -05:00 
		 
	
		
			
			
			
			
			
			2020-11-15 17:04:40 +01:00 
		 
	
		
			
			
			
			
			
			2020-01-24 20:59:15 +01:00 
		 
	
		
			
			
			
			
			
			2021-02-11 11:50:14 +00:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:02 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 11:54:16 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 11:54:16 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-09 12:01:28 +01:00 
		 
	
		
			
			
			
			
			
			2020-09-18 09:04:36 +02:00 
		 
	
		
			
			
			
			
			
			2020-09-01 14:21:51 +02:00 
		 
	
		
			
			
			
			
			
			2021-02-20 12:36:19 +01:00 
		 
	
		
			
			
			
			
			
			2020-08-27 14:04:55 -04:00 
		 
	
		
			
			
			
			
			
			2020-07-11 11:02:05 +02:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:01 +00:00 
		 
	
		
			
			
			
			
			
			2020-07-10 15:18:08 +02:00 
		 
	
		
			
			
			
			
			
			2020-06-05 17:23:09 +01:00 
		 
	
		
			
			
			
			
			
			2020-07-10 15:18:08 +02:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:31:52 +02:00 
		 
	
		
			
			
			
			
			
			2019-10-25 13:09:27 +01:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:37:36 +02:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-23 16:07:44 +01:00 
		 
	
		
			
			
			
			
			
			2020-12-10 12:11:03 +01:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-06-09 09:21:10 +02:00 
		 
	
		
			
			
			
			
			
			2021-01-08 15:13:39 +00:00 
		 
	
		
			
			
			
			
			
			2020-12-10 11:44:55 +00:00 
		 
	
		
			
			
			
			
			
			2020-12-10 11:44:55 +00:00 
		 
	
		
			
			
			
			
			
			2021-02-08 15:15:32 +01:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:31:53 +02:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:37:36 +02:00 
		 
	
		
			
			
			
			
			
			2020-12-10 11:44:55 +00:00 
		 
	
		
			
			
			
			
			
			2020-12-10 11:44:55 +00:00 
		 
	
		
			
			
			
			
			
			2020-12-10 11:44:55 +00:00 
		 
	
		
			
			
			
			
			
			2020-01-17 14:27:16 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:01 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:02 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:01 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-09 06:03:53 +01:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:02 +00:00 
		 
	
		
			
			
			
			
			
			2020-10-26 13:44:58 +01:00 
		 
	
		
			
			
			
			
			
			2021-03-09 23:13:57 +01:00 
		 
	
		
			
			
			
			
			
			2020-12-10 12:15:03 -05:00 
		 
	
		
			
			
			
			
			
			2020-11-03 07:17:23 -08:00 
		 
	
		
			
			
			
			
			
			2020-11-03 07:17:23 -08:00 
		 
	
		
			
			
			
			
			
			2020-11-03 07:17:23 -08:00 
		 
	
		
			
			
			
			
			
			2021-03-12 12:48:56 +00:00 
		 
	
		
			
			
			
			
			
			2020-11-15 17:04:40 +01:00 
		 
	
		
			
			
			
			
			
			2020-11-15 17:04:40 +01:00 
		 
	
		
			
			
			
			
			
			2020-01-24 20:59:15 +01:00 
		 
	
		
			
			
			
			
			
			2020-11-03 16:51:13 +01:00 
		 
	
		
			
			
			
			
			
			2020-11-03 16:51:13 +01:00 
		 
	
		
			
			
			
			
			
			2021-01-18 11:51:26 +01:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:03 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:03 +00:00 
		 
	
		
			
			
			
			
			
			2020-01-24 20:59:15 +01:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:01 +00:00 
		 
	
		
			
			
			
			
			
			2021-01-12 21:19:02 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-12 12:48:56 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-12 12:48:56 +00:00 
		 
	
		
			
			
			
			
			
			2021-01-12 21:19:02 +00:00 
		 
	
		
			
			
			
			
			
			2020-01-24 20:59:15 +01:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:31:52 +02:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:31:52 +02:00 
		 
	
		
			
			
			
			
			
			2020-03-16 22:07:42 +01:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:31:52 +02:00 
		 
	
		
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-09 09:27:09 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2021-01-29 10:47:28 +00:00 
		 
	
		
			
			
			
			
			
			2021-01-29 10:47:28 +00:00 
		 
	
		
			
			
			
			
			
			2021-01-29 10:47:28 +00:00 
		 
	
		
			
			
			
			
			
			2021-02-20 12:36:19 +01:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-09-09 15:54:19 -07:00 
		 
	
		
			
			
			
			
			
			2020-09-09 15:54:19 -07:00 
		 
	
		
			
			
			
			
			
			2021-03-04 09:43:29 -05:00 
		 
	
		
			
			
			
			
			
			2020-09-09 15:54:19 -07:00 
		 
	
		
			
			
			
			
			
			2020-09-18 14:12:32 -04:00 
		 
	
		
			
			
			
			
			
			2020-11-10 11:03:48 +00:00 
		 
	
		
			
			
			
			
			
			2020-01-17 14:09:29 +00:00 
		 
	
		
			
			
			
			
			
			2020-01-23 15:34:04 +00:00 
		 
	
		
			
			
			
			
			
			2020-11-17 12:56:33 +00:00 
		 
	
		
			
			
			
			
			
			2020-11-17 12:56:33 +00:00 
		 
	
		
			
			
			
			
			
			2020-12-14 14:25:44 -05:00 
		 
	
		
			
			
			
			
			
			2021-03-12 12:48:56 +00:00 
		 
	
		
			
			
			
			
			
			2020-08-21 06:18:24 -04:00 
		 
	
		
			
			
			
			
			
			2020-12-08 13:48:57 -05:00 
		 
	
		
			
			
			
			
			
			2020-01-24 20:59:15 +01:00 
		 
	
		
			
			
			
			
			
			2021-02-08 15:15:32 +01:00 
		 
	
		
			
			
			
			
			
			2020-08-28 10:02:46 +01:00 
		 
	
		
			
			
			
			
			
			2019-10-15 18:18:08 -03:00 
		 
	
		
			
			
			
			
			
			2021-03-12 12:40:09 +00:00 
		 
	
		
			
			
			
			
			
			2021-03-08 17:20:01 +00:00 
		 
	
		
			
			
			
			
			
			2019-08-16 13:31:53 +02:00