From nobody Fri Sep 25 16:04:45 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92AD348F03C; Thu, 10 Sep 2026 13:38:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789047533; cv=none; b=bzCYlykab7JMiRVKP1HwyyVS5l9HQzVHrMoQfpEsvziZvWzEXXB+ThhY3aL8T+eX4qoYzy6wX2nh2m340+6fJY8wAgKvAKMceFs1iZhmuncIH1NqwotOfn0w2PgrjaV+s6BrmrswTFq2EEXe8nVYIWGRYJoPejYowZ/nH+e17QY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789047533; c=relaxed/simple; bh=nqZQ6HgpPGMLdbbHWgf8pHkk4HOYit/em4O+/WffXsU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mQm+lx6fi3QO8sRWynNOaEhlZfkLhvy6yzsWZyDa3ceIGN1ExqXpjcUQOAAHDOOobTZmV47AggEKgR4BYdNTcM/MRhWWkHZOgnVmZjscoWfcLN/jn5/0HL4u6PzTMpV589Fl2C9DV/s3ODTVVWhW+GzNsUXj3L4DECtuPOBx71E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=aRyOONBC; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="aRyOONBC" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 557EFC653E5; Thu, 10 Sep 2026 13:29:25 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id F35CE5FA2F; Thu, 10 Sep 2026 13:28:43 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 7FB4511C78654; Thu, 10 Sep 2026 15:28:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1789046919; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=WPF8nKOHQtZqFBh7PcvVMqe4vDwmoFnkGygQ4vj1l9I=; b=aRyOONBCHs1ydfPvu+XjN8wTW5/Zrd988hT7ovKrnfvpImnstvdqrToJy8K7wyLNiENoui Kcr097gp+AO3Lee2IjimL+dEuNwlEawDON9lhZsnXi48Uf73QaidbRyriqFs5Glmr2lLOl Mk3hHH/bPlYUlLf/vB5lnwbijIUu8vnkaJMcSq7SPb6lMnmTzDZH7kdQSLF7g+vm8hOIuA n56ZwrYwvl63WddtSOx/HYifM98k07WMgga8XmFbJMN7J9TtycDtJAW6bEiL5lJasLU1xy 34eAqa20o3NAtmcsF7B9EFN1Q2/6xLff0hKD3nH7exG8Qh6J3B0cu+AsxFzBaQ== From: "Thomas Richard (congatec GmbH)" Date: Thu, 10 Sep 2026 15:28:21 +0200 Subject: [PATCH 1/2] hwmon: (cgbc-hwmon): Fix current sensors ID lookup Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260910-cgbc-hwmon-fix-and-new-sensors-v1-1-ef13ae2fa147@bootlin.com> References: <20260910-cgbc-hwmon-fix-and-new-sensors-v1-0-ef13ae2fa147@bootlin.com> In-Reply-To: <20260910-cgbc-hwmon-fix-and-new-sensors-v1-0-ef13ae2fa147@bootlin.com> To: Guenter Roeck , Jonathan Corbet , Shuah Khan , Randy Dunlap Cc: Thomas Petazzoni , Werner Gartner , linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, "Thomas Richard (congatec GmbH)" , stable@kernel.org X-Mailer: b4 0.16.0 X-Last-TLS-Session-Version: TLSv1.3 Current sensors on the Congatec Board Controller don't use consecutive IDs, unlike other sensor types (voltage, temperature, fan). The driver assumed consecutive IDs and performed a simple lookup, which caused an unknown sensor warning. Define current sensor IDs explicitly. Changes the warning on conga-SA7 (type and channel are correct now). Before: Board Controller returned an unknown sensor (type=3D2, channel=3D17), ign= ore it After: Board Controller returned an unknown sensor (bc_type=3D1, bc_id=3D11), ig= nore it Cc: stable@kernel.org Fixes: 08ebc9def79f ("hwmon: Add Congatec Board Controller monitoring drive= r") Signed-off-by: Thomas Richard (congatec GmbH) --- drivers/hwmon/cgbc-hwmon.c | 93 +++++++++++++++++++++++++++---------------= ---- 1 file changed, 54 insertions(+), 39 deletions(-) diff --git a/drivers/hwmon/cgbc-hwmon.c b/drivers/hwmon/cgbc-hwmon.c index 3aff4e092132..2effa0b56286 100644 --- a/drivers/hwmon/cgbc-hwmon.c +++ b/drivers/hwmon/cgbc-hwmon.c @@ -52,31 +52,36 @@ static const char * const cgbc_hwmon_labels_temp[] =3D { "BOTTOMDIM Temperature", }; =20 +static const char * const cgbc_hwmon_labels_in[] =3D { + "CPU Voltage", + "DC Runtime Voltage", + "DC Standby Voltage", + "CMOS Battery Voltage", + "Battery Voltage", + "AC Voltage", + "Other Voltage", + "5V Voltage", + "5V Standby Voltage", + "3V3 Voltage", + "3V3 Standby Voltage", + "VCore A Voltage", + "VCore B Voltage", + "12V Voltage", +}; + +/* + * Current sensors are a bit special, they don't have consecutive IDs like + * other types of sensors. So they need to be defined explicitly. + */ static const struct { - enum hwmon_sensor_types type; const char *label; -} cgbc_hwmon_labels_in[] =3D { - { hwmon_in, "CPU Voltage" }, - { hwmon_in, "DC Runtime Voltage" }, - { hwmon_in, "DC Standby Voltage" }, - { hwmon_in, "CMOS Battery Voltage" }, - { hwmon_in, "Battery Voltage" }, - { hwmon_in, "AC Voltage" }, - { hwmon_in, "Other Voltage" }, - { hwmon_in, "5V Voltage" }, - { hwmon_in, "5V Standby Voltage" }, - { hwmon_in, "3V3 Voltage" }, - { hwmon_in, "3V3 Standby Voltage" }, - { hwmon_in, "VCore A Voltage" }, - { hwmon_in, "VCore B Voltage" }, - { hwmon_in, "12V Voltage" }, - { hwmon_curr, "DC Current" }, - { hwmon_curr, "5V Current" }, - { hwmon_curr, "12V Current" }, + int id; +} cgbc_hwmon_labels_curr[] =3D { + { "DC Current", 0x12 }, + { "5V Current", 0x18 }, + { "12V Current", 0x1E }, }; =20 -#define CGBC_HWMON_NB_IN_SENSORS 14 - static const char * const cgbc_hwmon_labels_fan[] =3D { "CPU Fan", "Box Fan", @@ -114,7 +119,8 @@ static int cgbc_hwmon_probe_sensors(struct device *dev,= struct cgbc_hwmon_data * =20 for (i =3D 0; i < nb_sensors; i++) { enum cgbc_sensor_types type; - unsigned int channel; + unsigned int channel, id; + int j; =20 /* * No need to request data for the first sensor. @@ -128,32 +134,49 @@ static int cgbc_hwmon_probe_sensors(struct device *de= v, struct cgbc_hwmon_data * } =20 type =3D FIELD_GET(CGBC_HWMON_TYPE_MASK, data[1]); - channel =3D FIELD_GET(CGBC_HWMON_ID_MASK, data[1]) - 1; + id =3D FIELD_GET(CGBC_HWMON_ID_MASK, data[1]); + channel =3D id - 1; =20 if (type =3D=3D CGBC_HWMON_TYPE_TEMP && channel < ARRAY_SIZE(cgbc_hwmon_= labels_temp)) { sensor->type =3D hwmon_temp; sensor->label =3D cgbc_hwmon_labels_temp[channel]; - } else if (type =3D=3D CGBC_HWMON_TYPE_IN && - channel < ARRAY_SIZE(cgbc_hwmon_labels_in)) { + } else if (type =3D=3D CGBC_HWMON_TYPE_IN) { /* * The Board Controller doesn't differentiate current and voltage senso= rs. - * Get the sensor type from cgbc_hwmon_labels_in[channel].type instead. + * First check if it is a current sensor. */ - sensor->type =3D cgbc_hwmon_labels_in[channel].type; - sensor->label =3D cgbc_hwmon_labels_in[channel].label; + for (j =3D 0; j < ARRAY_SIZE(cgbc_hwmon_labels_curr); j++) { + if (id =3D=3D cgbc_hwmon_labels_curr[j].id) { + sensor->type =3D hwmon_curr; + sensor->label =3D cgbc_hwmon_labels_curr[j].label; + channel =3D j; + } + } + + /* If it's not a current sensor, it may be a voltage sensor. */ + if (!sensor->label && channel < ARRAY_SIZE(cgbc_hwmon_labels_in)) { + sensor->type =3D hwmon_in; + sensor->label =3D cgbc_hwmon_labels_in[channel]; + } } else if (type =3D=3D CGBC_HWMON_TYPE_FAN && channel < ARRAY_SIZE(cgbc_hwmon_labels_fan)) { sensor->type =3D hwmon_fan; sensor->label =3D cgbc_hwmon_labels_fan[channel]; - } else { - dev_warn(dev, "Board Controller returned an unknown sensor (type=3D%d, = channel=3D%d), ignore it", - type, channel); + } + + if (!sensor->label) { + dev_warn(dev, "Board Controller returned an unknown sensor (bc_type=3D%= d, bc_id=3D%d), ignore it", + type, id); continue; } =20 sensor->active =3D FIELD_GET(CGBC_HWMON_ACTIVE_BIT, data[1]); sensor->channel =3D channel; sensor->index =3D i; + + dev_dbg(dev, "Found sensor: bc_type=3D%d, bc_id=3D%d, hwmon_type=3D%d, h= wmon_channel=3D%d, hwmon_label=3D'%s', active=3D%d\n", + type, id, sensor->type, sensor->channel, sensor->label, sensor->active); + sensor++; hwmon->nb_sensors++; } @@ -167,14 +190,6 @@ static struct cgbc_hwmon_sensor *cgbc_hwmon_find_senso= r(struct cgbc_hwmon_data * struct cgbc_hwmon_sensor *sensor =3D NULL; int i; =20 - /* - * The Board Controller doesn't differentiate current and voltage sensors. - * The channel value (from the Board Controller point of view) shall be c= omputed for current - * sensors. - */ - if (type =3D=3D hwmon_curr) - channel +=3D CGBC_HWMON_NB_IN_SENSORS; - for (i =3D 0; i < hwmon->nb_sensors; i++) { if (hwmon->sensors[i].type =3D=3D type && hwmon->sensors[i].channel =3D= =3D channel) { sensor =3D &hwmon->sensors[i]; --=20 2.53.0 From nobody Fri Sep 25 16:04:45 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6488E472772; Thu, 10 Sep 2026 13:29:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046943; cv=none; b=PS8/GGoVKak5FSQEINK5XbkqV41WJ8pfFUcR6RmWiV9Lf/cBZ/40u+TydAjR+bN6o5P2O3LfyHr87smIX7K8hrM2qUs4oTV9YU+xX7qNt4nVz6x35X0goIzLJLubCyCLTxy663guQgkKm+a5VQND2hT7I3bf035WhYwvh2QBsz0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046943; c=relaxed/simple; bh=rb40kngR/1/9RS1g4ilZmUMdvuVrs61YvMqPlf0788g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HmDJpgUBd1PjIO7mA8e3+LLynjcYQTgEiax9zXe6MzVBjW1Lm3oETF8Q3VoFusPBk8uzKbFI+fjoWR+338EkRkTqDfCSjEPM3sknUDjjPxlQCnhBijC1FNtAI5SOzfPe/iVzWGKTqjwf+i9vVUyzabSqogzKUAlcdHUhDWGdIRE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=Iv6i5qW3; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="Iv6i5qW3" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id CA1B8C653DE; Thu, 10 Sep 2026 13:29:40 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 823AD5FA2F; Thu, 10 Sep 2026 13:28:49 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 9840F11C79B47; Thu, 10 Sep 2026 15:28:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1789046924; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=rt27fNfNYQQhhwhCnyhkSYUYvGOP98IAFGMQ/8m3Q9E=; b=Iv6i5qW3kPrUMIHFNdkniPlC16wXLoYajlPU9/HH6ZlRjEBv3lJj/552BRZbFE+1AjByfs MOkjduw+/yLbXNMKMzK1Kp4mJQev6R920n8k63gyLzllzf/vnJT5VPR2IIFBg+LmqmaK88 LLqX+m+5Ab927TXhT+WjWDJI4INiMI+xASv8xdnMOHf47hxJLYlwILshdYTkX+mC5/adn6 le6/Qwrv5O0+VwrKkVuD86ncc2wtFEZSGYFkVjth9FcgaecpwYRAJm9gn39XjrRuUyE5Tp Dk+Vl5a2lACGTmE20oZvnRRnqifzl9QWO962osd15DZF50l43lMckdajoQHLIw== From: "Thomas Richard (congatec GmbH)" Date: Thu, 10 Sep 2026 15:28:22 +0200 Subject: [PATCH 2/2] hwmon: (cgbc-hwmon): Add some temperature sensors Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260910-cgbc-hwmon-fix-and-new-sensors-v1-2-ef13ae2fa147@bootlin.com> References: <20260910-cgbc-hwmon-fix-and-new-sensors-v1-0-ef13ae2fa147@bootlin.com> In-Reply-To: <20260910-cgbc-hwmon-fix-and-new-sensors-v1-0-ef13ae2fa147@bootlin.com> To: Guenter Roeck , Jonathan Corbet , Shuah Khan , Randy Dunlap Cc: Thomas Petazzoni , Werner Gartner , linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, "Thomas Richard (congatec GmbH)" , stable@kernel.org X-Mailer: b4 0.16.0 X-Last-TLS-Session-Version: TLSv1.3 Add the following temperature sensors: - Alternate Board Temperature (temp11_input) - Top DIMM 1-7 temperature (temp12_input to temp18_input) - Bottom DIMM 1 temperature (temp19_input) This fixes the following warning on conga-SA7: Board Controller returned an unknown sensor (bc_type=3D1, bc_id=3D11), ig= nore it Also update existing labels to match Congatec documentation. Cc: stable@kernel.org Fixes: 08ebc9def79f ("hwmon: Add Congatec Board Controller monitoring drive= r") Signed-off-by: Thomas Richard (congatec GmbH) --- Documentation/hwmon/cgbc-hwmon.rst | 42 +++++++++++++++++++------------- drivers/hwmon/cgbc-hwmon.c | 49 +++++++++++++++++++++++++---------= ---- 2 files changed, 58 insertions(+), 33 deletions(-) diff --git a/Documentation/hwmon/cgbc-hwmon.rst b/Documentation/hwmon/cgbc-= hwmon.rst index 3a5e6e6e8639..c6d09232392a 100644 --- a/Documentation/hwmon/cgbc-hwmon.rst +++ b/Documentation/hwmon/cgbc-hwmon.rst @@ -28,34 +28,44 @@ system. Name Description =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D temp1_input CPU temperature -temp2_input Box temperature +temp2_input Case temperature temp3_input Ambient temperature -temp4_input Board temperature -temp5_input Carrier temperature -temp6_input Chipset temperature -temp7_input Video temperature +temp4_input CPU Board temperature +temp5_input Carrier Board temperature +temp6_input System Chipset temperature +temp7_input Video Controller/Board temperature temp8_input Other temperature -temp9_input TOPDIM temperature -temp10_input BOTTOMDIM temperature -in0_input CPU voltage +temp9_input Top DIMM 0 temperature +temp10_input Bottom DIMM 0 temperature +temp11_input Alternate Board temperature +temp12_input Top DIMM 1 temperature +temp13_input Top DIMM 2 temperature +temp14_input Top DIMM 3 temperature +temp15_input Top DIMM 4 temperature +temp16_input Top DIMM 5 temperature +temp17_input Top DIMM 6 temperature +temp18_input Top DIMM 7 temperature +temp19_input Bottom DIMM 1 temperature +in0_input CPU Core voltage in1_input DC Runtime voltage in2_input DC Standby voltage in3_input CMOS Battery voltage -in4_input Battery voltage +in4_input Battery Supply voltage in5_input AC voltage in6_input Other voltage -in7_input 5V voltage +in7_input 5V Runtime voltage in8_input 5V Standby voltage -in9_input 3V3 voltage +in9_input 3V3 Runtime voltage in10_input 3V3 Standby voltage in11_input VCore A voltage in12_input VCore B voltage -in13_input 12V voltage -curr1_input DC current -curr2_input 5V current -curr3_input 12V current +in13_input 12V Runtime voltage +in14_input 12V Standby voltage +curr1_input DC Runtime current +curr2_input 5V Runtime current +curr3_input 12V Runtime current fan1_input CPU fan -fan2_input Box fan +fan2_input Case fan fan3_input Ambient fan fan4_input Chiptset fan fan5_input Video fan diff --git a/drivers/hwmon/cgbc-hwmon.c b/drivers/hwmon/cgbc-hwmon.c index 2effa0b56286..098896ec8c6f 100644 --- a/drivers/hwmon/cgbc-hwmon.c +++ b/drivers/hwmon/cgbc-hwmon.c @@ -41,32 +41,42 @@ enum cgbc_sensor_types { =20 static const char * const cgbc_hwmon_labels_temp[] =3D { "CPU Temperature", - "Box Temperature", + "Case Temperature", "Ambient Temperature", - "Board Temperature", - "Carrier Temperature", - "Chipset Temperature", - "Video Temperature", + "CPU Board Temperature", + "Carrier Board Temperature", + "System Chipset Temperature", + "Video Controller/Board Temperature", "Other Temperature", - "TOPDIM Temperature", - "BOTTOMDIM Temperature", + "Top DIMM 0 Temperature", + "Bottom DIMM 0 Temperature", + "Alternate Board Temperature", + "Top DIMM 1 Temperature", + "Top DIMM 2 Temperature", + "Top DIMM 3 Temperature", + "Top DIMM 4 Temperature", + "Top DIMM 5 Temperature", + "Top DIMM 6 Temperature", + "Top DIMM 7 Temperature", + "Bottom DIMM 1 Temperature", }; =20 static const char * const cgbc_hwmon_labels_in[] =3D { - "CPU Voltage", + "CPU Core Voltage", "DC Runtime Voltage", "DC Standby Voltage", "CMOS Battery Voltage", - "Battery Voltage", + "Battery Supply Voltage", "AC Voltage", "Other Voltage", - "5V Voltage", + "5V Runtime Voltage", "5V Standby Voltage", - "3V3 Voltage", + "3V3 Runtime Voltage", "3V3 Standby Voltage", "VCore A Voltage", "VCore B Voltage", - "12V Voltage", + "12V Runtime Voltage", + "12V Standby Voltage", }; =20 /* @@ -77,14 +87,14 @@ static const struct { const char *label; int id; } cgbc_hwmon_labels_curr[] =3D { - { "DC Current", 0x12 }, - { "5V Current", 0x18 }, - { "12V Current", 0x1E }, + { "DC Runtime Current", 0x12 }, + { "5V Runtime Current", 0x18 }, + { "12V Runtime Current", 0x1E }, }; =20 static const char * const cgbc_hwmon_labels_fan[] =3D { "CPU Fan", - "Box Fan", + "Case Fan", "Ambient Fan", "Chipset Fan", "Video Fan", @@ -255,7 +265,12 @@ static const struct hwmon_channel_info * const cgbc_hw= mon_info[] =3D { HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, - HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL), + HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, + HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, + HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, + HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, + HWMON_T_INPUT | HWMON_T_LABEL, HWMON_T_INPUT | HWMON_T_LABEL, + HWMON_T_INPUT | HWMON_T_LABEL), HWMON_CHANNEL_INFO(in, HWMON_I_INPUT | HWMON_I_LABEL, HWMON_I_INPUT | HWMON_I_LABEL, HWMON_I_INPUT | HWMON_I_LABEL, HWMON_I_INPUT | HWMON_I_LABEL, --=20 2.53.0