Commit bd594022 authored by Frank Crawford's avatar Frank Crawford Committed by Guenter Roeck
Browse files

hwmon: (it87) Update IT8732F chip for 4 fans and PWMs



Add support for 4 fans and 4 PWMs to chipset IT8732F.

Signed-off-by: default avatarFrank Crawford <frank@crawford.emu.id.au>
Link: https://lore.kernel.org/r/20230429115205.1547251-4-frank@crawford.emu.id.au


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 39a6dcf6
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -377,7 +377,8 @@ static const struct it87_devices it87_devices[] = {
		.model = "IT8732F",
		.features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS
		  | FEAT_TEMP_OFFSET | FEAT_TEMP_OLD_PECI | FEAT_TEMP_PECI
		  | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL,
		  | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL | FEAT_FOUR_FANS
		  | FEAT_FOUR_PWM,
		.peci_mask = 0x07,
		.old_peci_mask = 0x02,	/* Actually reports PCH */
	},
@@ -2932,6 +2933,34 @@ static int __init it87_find(int sioaddr, unsigned short *address,
		if (!(reg & BIT(0)))
			sio_data->skip_in |= BIT(9);

		sio_data->beep_pin = superio_inb(sioaddr,
						 IT87_SIO_BEEP_PIN_REG) & 0x3f;
	} else if (sio_data->type == it8732) {
		int reg;

		superio_select(sioaddr, GPIO);

		/* Check for pwm2, fan2 */
		reg = superio_inb(sioaddr, IT87_SIO_GPIO5_REG);
		if (reg & BIT(1))
			sio_data->skip_pwm |= BIT(1);
		if (reg & BIT(2))
			sio_data->skip_fan |= BIT(1);

		/* Check for pwm3, fan3, fan4 */
		reg = superio_inb(sioaddr, IT87_SIO_GPIO3_REG);
		if (reg & BIT(6))
			sio_data->skip_pwm |= BIT(2);
		if (reg & BIT(7))
			sio_data->skip_fan |= BIT(2);
		if (reg & BIT(5))
			sio_data->skip_fan |= BIT(3);

		/* Check if AVCC is on VIN3 */
		reg = superio_inb(sioaddr, IT87_SIO_PINX2_REG);
		if (reg & BIT(0))
			sio_data->internal |= BIT(0);

		sio_data->beep_pin = superio_inb(sioaddr,
						 IT87_SIO_BEEP_PIN_REG) & 0x3f;
	} else {