diff mbox series

[v1,6/7] hwmon: (it87) Add new chipset IT87952E

Message ID 20230126040223.986189-7-frank@crawford.emu.id.au (mailing list archive)
State Superseded
Headers show
Series hwmon: (it87) Complete handling multi-chip configuration | expand

Commit Message

Frank Crawford Jan. 26, 2023, 4:02 a.m. UTC
Add IT87952E, a new chip ID (DEV ID 0x8695), which appears to be an
updated version of the IT8792E and takes the same configuration.

The model name comes from the model name printed on the chip.

There is no datasheet publicly available.

Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
---
 drivers/hwmon/it87.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

Comments

Guenter Roeck Jan. 26, 2023, 1:53 p.m. UTC | #1
On Thu, Jan 26, 2023 at 03:02:22PM +1100, Frank Crawford wrote:
> Add IT87952E, a new chip ID (DEV ID 0x8695), which appears to be an
> updated version of the IT8792E and takes the same configuration.
> 
> The model name comes from the model name printed on the chip.
> 
> There is no datasheet publicly available.
> 
> Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
> ---
>  drivers/hwmon/it87.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> index e8eeedd23bee..85ecc61dbf9e 100644
> --- a/drivers/hwmon/it87.c
> +++ b/drivers/hwmon/it87.c
> @@ -34,6 +34,7 @@
>   *            IT8786E  Super I/O chip w/LPC interface
>   *            IT8790E  Super I/O chip w/LPC interface
>   *            IT8792E  Super I/O chip w/LPC interface
> + *            IT87952E  Super I/O chip w/LPC interface
>   *            Sis950   A clone of the IT8705F
>   *
>   *  Copyright (C) 2001 Chris Gauthron
> @@ -63,7 +64,7 @@
>  
>  enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732,
>  	     it8771, it8772, it8781, it8782, it8783, it8786, it8790,
> -	     it8792, it8603, it8620, it8622, it8628 };
> +	     it8792, it8603, it8620, it8622, it8628, it87952 };
>  
>  static struct platform_device *it87_pdev[2];
>  
> @@ -160,6 +161,7 @@ static inline void superio_exit(int ioreg, bool doexit)
>  #define IT8622E_DEVID 0x8622
>  #define IT8623E_DEVID 0x8623
>  #define IT8628E_DEVID 0x8628
> +#define IT87952E_DEVID 0x8695
>  #define IT87_ACT_REG  0x30
>  #define IT87_BASE_REG 0x60
>  
> @@ -470,6 +472,15 @@ static const struct it87_devices it87_devices[] = {
>  		  | FEAT_SIX_TEMP | FEAT_VIN3_5V,
>  		.peci_mask = 0x07,
>  	},
> +	[it87952] = {
> +		.name = "it87952",
> +		.model = "IT87952E",
> +		.features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS
> +		  | FEAT_TEMP_OFFSET | FEAT_TEMP_OLD_PECI | FEAT_TEMP_PECI
> +		  | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL,
> +		.peci_mask = 0x07,
> +		.old_peci_mask = 0x02,	/* Actually reports PCH */
> +	},
>  };
>  
>  #define has_16bit_fans(data)	((data)->features & FEAT_16BIT_FANS)
> @@ -2501,6 +2512,10 @@ static int __init it87_find(int sioaddr, unsigned short *address,
>  	case IT8628E_DEVID:
>  		sio_data->type = it8628;
>  		break;
> +	case IT87952E_DEVID:
> +		sio_data->type = it87952;
> +		doexit = false;	/* See IT8792E comment above */
> +		break;

Is that true for this chip as well ? I would have hoped they fix
the problem for an updated version of the same chip.

Thanks,
Guenter

>  	case 0xffff:	/* No device at all */
>  		goto exit;
>  	default:
> -- 
> 2.39.1
>
Frank Crawford Jan. 26, 2023, 10:58 p.m. UTC | #2
On Thu, 2023-01-26 at 05:53 -0800, Guenter Roeck wrote:
> On Thu, Jan 26, 2023 at 03:02:22PM +1100, Frank Crawford wrote:
> > Add IT87952E, a new chip ID (DEV ID 0x8695), which appears to be an
> > updated version of the IT8792E and takes the same configuration.
> > 
> > The model name comes from the model name printed on the chip.
> > 
> > There is no datasheet publicly available.
> > 
> > Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
> > ---
> >  drivers/hwmon/it87.c | 17 ++++++++++++++++-
> >  1 file changed, 16 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> > index e8eeedd23bee..85ecc61dbf9e 100644
> > --- a/drivers/hwmon/it87.c
> > +++ b/drivers/hwmon/it87.c
> > @@ -34,6 +34,7 @@
> >   *            IT8786E  Super I/O chip w/LPC interface
> >   *            IT8790E  Super I/O chip w/LPC interface
> >   *            IT8792E  Super I/O chip w/LPC interface
> > + *            IT87952E  Super I/O chip w/LPC interface
> >   *            Sis950   A clone of the IT8705F
> >   *
> >   *  Copyright (C) 2001 Chris Gauthron
> > @@ -63,7 +64,7 @@
> >  
> >  enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728,
> > it8732,
> >              it8771, it8772, it8781, it8782, it8783, it8786,
> > it8790,
> > -            it8792, it8603, it8620, it8622, it8628 };
> > +            it8792, it8603, it8620, it8622, it8628, it87952 };
> >  
> >  static struct platform_device *it87_pdev[2];
> >  
> > @@ -160,6 +161,7 @@ static inline void superio_exit(int ioreg, bool
> > doexit)
> >  #define IT8622E_DEVID 0x8622
> >  #define IT8623E_DEVID 0x8623
> >  #define IT8628E_DEVID 0x8628
> > +#define IT87952E_DEVID 0x8695
> >  #define IT87_ACT_REG  0x30
> >  #define IT87_BASE_REG 0x60
> >  
> > @@ -470,6 +472,15 @@ static const struct it87_devices
> > it87_devices[] = {
> >                   | FEAT_SIX_TEMP | FEAT_VIN3_5V,
> >                 .peci_mask = 0x07,
> >         },
> > +       [it87952] = {
> > +               .name = "it87952",
> > +               .model = "IT87952E",
> > +               .features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS
> > +                 | FEAT_TEMP_OFFSET | FEAT_TEMP_OLD_PECI |
> > FEAT_TEMP_PECI
> > +                 | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL,
> > +               .peci_mask = 0x07,
> > +               .old_peci_mask = 0x02,  /* Actually reports PCH */
> > +       },
> >  };
> >  
> >  #define has_16bit_fans(data)   ((data)->features &
> > FEAT_16BIT_FANS)
> > @@ -2501,6 +2512,10 @@ static int __init it87_find(int sioaddr,
> > unsigned short *address,
> >         case IT8628E_DEVID:
> >                 sio_data->type = it8628;
> >                 break;
> > +       case IT87952E_DEVID:
> > +               sio_data->type = it87952;
> > +               doexit = false; /* See IT8792E comment above */
> > +               break;
> 
> Is that true for this chip as well ? I would have hoped they fix
> the problem for an updated version of the same chip.

Unfortunately my testing has been through others for this chip, and the
effects have been similar to the IT8792E, i.e. sometimes found
sometimes not.  I can't be sure if the testers did something wrong, but
I felt it was better to assume that part of the firmware is unchanged
and still contains the same bug.
> 
> Thanks,
> Guenter

Regards
Frank
> 
> >         case 0xffff:    /* No device at all */
> >                 goto exit;
> >         default:
> > -- 
> > 2.39.1
> >
diff mbox series

Patch

diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index e8eeedd23bee..85ecc61dbf9e 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -34,6 +34,7 @@ 
  *            IT8786E  Super I/O chip w/LPC interface
  *            IT8790E  Super I/O chip w/LPC interface
  *            IT8792E  Super I/O chip w/LPC interface
+ *            IT87952E  Super I/O chip w/LPC interface
  *            Sis950   A clone of the IT8705F
  *
  *  Copyright (C) 2001 Chris Gauthron
@@ -63,7 +64,7 @@ 
 
 enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732,
 	     it8771, it8772, it8781, it8782, it8783, it8786, it8790,
-	     it8792, it8603, it8620, it8622, it8628 };
+	     it8792, it8603, it8620, it8622, it8628, it87952 };
 
 static struct platform_device *it87_pdev[2];
 
@@ -160,6 +161,7 @@  static inline void superio_exit(int ioreg, bool doexit)
 #define IT8622E_DEVID 0x8622
 #define IT8623E_DEVID 0x8623
 #define IT8628E_DEVID 0x8628
+#define IT87952E_DEVID 0x8695
 #define IT87_ACT_REG  0x30
 #define IT87_BASE_REG 0x60
 
@@ -470,6 +472,15 @@  static const struct it87_devices it87_devices[] = {
 		  | FEAT_SIX_TEMP | FEAT_VIN3_5V,
 		.peci_mask = 0x07,
 	},
+	[it87952] = {
+		.name = "it87952",
+		.model = "IT87952E",
+		.features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS
+		  | FEAT_TEMP_OFFSET | FEAT_TEMP_OLD_PECI | FEAT_TEMP_PECI
+		  | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL,
+		.peci_mask = 0x07,
+		.old_peci_mask = 0x02,	/* Actually reports PCH */
+	},
 };
 
 #define has_16bit_fans(data)	((data)->features & FEAT_16BIT_FANS)
@@ -2501,6 +2512,10 @@  static int __init it87_find(int sioaddr, unsigned short *address,
 	case IT8628E_DEVID:
 		sio_data->type = it8628;
 		break;
+	case IT87952E_DEVID:
+		sio_data->type = it87952;
+		doexit = false;	/* See IT8792E comment above */
+		break;
 	case 0xffff:	/* No device at all */
 		goto exit;
 	default: