Lines Matching full:fan

79 /* NPCM7XX FAN Tacho registers */
140 /* FAN General Definition */
141 /* Define the maximum FAN channel number */
147 * Get Fan Tach Timeout (base on clock 214843.75Hz, 1 cnt = 4.654us)
149 * (The minimum FAN speed could to support ~640RPM/pulse 1,
165 /* Obtain the fan number */
166 #define NPCM7XX_FAN_INPUT(fan, cmp) (((fan) << 1) + (cmp)) argument
168 /* fan sample status */
269 u8 fan, u8 cmp) in npcm7xx_fan_start_capture() argument
276 fan_id = NPCM7XX_FAN_INPUT(fan, cmp); in npcm7xx_fan_start_capture()
278 /* to check whether any fan tach is enable */ in npcm7xx_fan_start_capture()
281 spin_lock_irqsave(&data->fan_lock[fan], flags); in npcm7xx_fan_start_capture()
284 reg_int = ioread8(NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_fan_start_capture()
296 NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_fan_start_capture()
300 fan)); in npcm7xx_fan_start_capture()
304 fan)); in npcm7xx_fan_start_capture()
309 NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_fan_start_capture()
314 fan)); in npcm7xx_fan_start_capture()
318 NPCM7XX_FAN_REG_TCKC(data->fan_base, fan)); in npcm7xx_fan_start_capture()
321 spin_unlock_irqrestore(&data->fan_lock[fan], flags); in npcm7xx_fan_start_capture()
326 * Enable a background timer to poll fan tach value, (200ms * 4)
327 * to polling all fan
368 u8 fan, u8 cmp, u8 fan_id, u8 flag_int, in npcm7xx_fan_compute() argument
376 fan_cap = ioread16(NPCM7XX_FAN_REG_TCRA(data->fan_base, fan)); in npcm7xx_fan_compute()
378 fan_cap = ioread16(NPCM7XX_FAN_REG_TCRB(data->fan_base, fan)); in npcm7xx_fan_compute()
381 iowrite8(flag_clear, NPCM7XX_FAN_REG_TICLR(data->fan_base, fan)); in npcm7xx_fan_compute()
393 * (ex: 2 pulse fan need to get 2 sample) in npcm7xx_fan_compute()
400 /* get enough sample or fan disable */ in npcm7xx_fan_compute()
413 reg_int = ioread8(NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_fan_compute()
417 NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_fan_compute()
418 reg_mode = ioread8(NPCM7XX_FAN_REG_TCKC(data->fan_base, fan)); in npcm7xx_fan_compute()
422 NPCM7XX_FAN_REG_TCKC(data->fan_base, fan)); in npcm7xx_fan_compute()
427 u8 fan, u8 cmp, u8 flag) in npcm7xx_check_cmp() argument
438 fan_id = NPCM7XX_FAN_INPUT(fan, cmp); in npcm7xx_check_cmp()
455 reg_int = ioread8(NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_check_cmp()
459 NPCM7XX_FAN_REG_TIEN(data->fan_base, fan)); in npcm7xx_check_cmp()
463 NPCM7XX_FAN_REG_TICLR(data->fan_base, fan)); in npcm7xx_check_cmp()
465 reg_mode = ioread8(NPCM7XX_FAN_REG_TCKC(data->fan_base, fan)); in npcm7xx_check_cmp()
469 NPCM7XX_FAN_REG_TCKC(data->fan_base, fan)); in npcm7xx_check_cmp()
472 * If timeout occurs (NPCM7XX_FAN_TIMEOUT), the fan doesn't in npcm7xx_check_cmp()
480 npcm7xx_fan_compute(data, fan, cmp, fan_id, flag_int, in npcm7xx_check_cmp()
650 HWMON_CHANNEL_INFO(fan,
773 /* set FAN0~7 fan input FANIN 0~15 */ in npcm7xx_fan_init()
790 /* Fan tach input clock = APB clock / prescalar, default is 255. */ in npcm7xx_fan_init()
906 fan_cnt = of_property_count_u8_elems(child, "fan-tach-ch"); in npcm7xx_en_pwm_fan()
914 ret = of_property_read_u8_array(child, "fan-tach-ch", fan_ch, fan_cnt); in npcm7xx_en_pwm_fan()
968 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fan"); in npcm7xx_pwm_fan_probe()
970 dev_err(dev, "fan resource not found\n"); in npcm7xx_pwm_fan_probe()
975 dev_dbg(dev, "fan base resource is %pR\n", res); in npcm7xx_pwm_fan_probe()
979 data->fan_clk = devm_clk_get(dev, "fan"); in npcm7xx_pwm_fan_probe()
981 dev_err(dev, "couldn't get fan clock\n"); in npcm7xx_pwm_fan_probe()
998 sprintf(name, "NPCM7XX-FAN-MD%d", i); in npcm7xx_pwm_fan_probe()
1002 dev_err(dev, "register IRQ fan%d failed\n", i); in npcm7xx_pwm_fan_probe()
1010 dev_err(dev, "enable pwm and fan failed\n"); in npcm7xx_pwm_fan_probe()
1025 /* fan timer initialization */ in npcm7xx_pwm_fan_probe()
1035 pr_info("NPCM7XX PWM-FAN Driver probed, output Freq %dHz[PWM], input Freq %dHz[FAN]\n", in npcm7xx_pwm_fan_probe()
1042 { .compatible = "nuvoton,npcm750-pwm-fan", .data = &npxm7xx_hwmon_info},
1043 { .compatible = "nuvoton,npcm845-pwm-fan", .data = &npxm8xx_hwmon_info},
1058 MODULE_DESCRIPTION("Nuvoton NPCM7XX PWM and Fan Tacho driver");