Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: rt6160: Add rt6166 vout min_uV setting for compatible

1. remove unintentional GPL change
2. using switch case for Device ID probe check.

Signed-off-by: Jeff Chang <jeff_chang@richtek.com>
Link: https://patch.msgid.link/20250716021230.2660564-1-jeff_chang@richtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Jeff Chang and committed by
Mark Brown
63be976d 43728a64

+17 -2
+17 -2
drivers/regulator/rt6160-regulator.c
··· 31 31 #define RT6160_PGSTAT_MASK BIT(0) 32 32 33 33 #define RT6160_VENDOR_ID 0xA0 34 + #define RT6166_VENDOR_ID 0xB0 34 35 #define RT6160_VOUT_MINUV 2025000 35 36 #define RT6160_VOUT_MAXUV 5200000 37 + #define RT6166_VOUT_MINUV 1800000 38 + #define RT6166_VOUD_MAXUV 4950000 36 39 #define RT6160_VOUT_STPUV 25000 37 40 #define RT6160_N_VOUTS ((RT6160_VOUT_MAXUV - RT6160_VOUT_MINUV) / RT6160_VOUT_STPUV + 1) 38 41 ··· 46 43 struct gpio_desc *enable_gpio; 47 44 struct regmap *regmap; 48 45 bool enable_state; 46 + uint8_t devid; 49 47 }; 50 48 51 49 static const unsigned int rt6160_ramp_tables[] = { ··· 264 260 if (ret) 265 261 return ret; 266 262 267 - if ((devid & RT6160_VID_MASK) != RT6160_VENDOR_ID) { 263 + devid = devid & RT6160_VID_MASK; 264 + 265 + switch (devid) { 266 + case RT6166_VENDOR_ID: 267 + case RT6160_VENDOR_ID: 268 + break; 269 + default: 268 270 dev_err(&i2c->dev, "VID not correct [0x%02x]\n", devid); 269 271 return -ENODEV; 270 272 } 271 273 274 + priv->devid = devid; 275 + 272 276 priv->desc.name = "rt6160-buckboost"; 273 277 priv->desc.type = REGULATOR_VOLTAGE; 274 278 priv->desc.owner = THIS_MODULE; 275 - priv->desc.min_uV = RT6160_VOUT_MINUV; 279 + if (priv->devid == RT6166_VENDOR_ID) 280 + priv->desc.min_uV = RT6166_VOUT_MINUV; 281 + else 282 + priv->desc.min_uV = RT6160_VOUT_MINUV; 276 283 priv->desc.uV_step = RT6160_VOUT_STPUV; 277 284 if (vsel_active_low) 278 285 priv->desc.vsel_reg = RT6160_REG_VSELL;