Commit d45cd804 authored by Chris Packham's avatar Chris Packham Committed by Guenter Roeck
Browse files

hwmon: (adt7475) Use enum chips when loading attenuator settings



Make use of enum chips and use a switch statement in load_attenuators()
so that the compiler can tell us if we've failed to cater for a
supported chip.

Signed-off-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20220323034056.260455-4-chris.packham@alliedtelesis.co.nz


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 7b8664f1
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -1569,12 +1569,12 @@ static int set_property_bit(const struct i2c_client *client, char *property,
	return ret;
}

static int load_attenuators(const struct i2c_client *client, int chip,
static int load_attenuators(const struct i2c_client *client, enum chips chip,
			    struct adt7475_data *data)
{
	int ret;

	if (chip == adt7476 || chip == adt7490) {
	switch (chip) {
	case adt7476:
	case adt7490:
		set_property_bit(client, "adi,bypass-attenuator-in0",
				 &data->config4, 4);
		set_property_bit(client, "adi,bypass-attenuator-in1",
@@ -1584,18 +1584,15 @@ static int load_attenuators(const struct i2c_client *client, int chip,
		set_property_bit(client, "adi,bypass-attenuator-in4",
				 &data->config4, 7);

		ret = i2c_smbus_write_byte_data(client, REG_CONFIG4,
		return i2c_smbus_write_byte_data(client, REG_CONFIG4,
						 data->config4);
		if (ret < 0)
			return ret;
	} else if (chip == adt7473 || chip == adt7475) {
	case adt7473:
	case adt7475:
		set_property_bit(client, "adi,bypass-attenuator-in1",
				 &data->config2, 5);

		ret = i2c_smbus_write_byte_data(client, REG_CONFIG2,
		return i2c_smbus_write_byte_data(client, REG_CONFIG2,
						 data->config2);
		if (ret < 0)
			return ret;
	}

	return 0;