Re: [PATCH 3/3] ACPI / PMIC: Add opregion driver for Intel Dollar Cove TI PMIC
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2017-08-22 11:37:26
Also in:
linux-acpi, lkml
On Tue, 2017-08-22 at 13:01 +0200, Takashi Iwai wrote:
On Tue, 22 Aug 2017 12:25:12 +0200, Takashi Iwai wrote:quoted
On Tue, 22 Aug 2017 11:58:35 +0200, Andy Shevchenko wrote:quoted
On Tue, 2017-08-22 at 07:57 +0200, Takashi Iwai wrote:quoted
This patch adds the opregion driver for Dollar Cove TI PMIC on Intel Cherry Trail devices. The patch is based on the original work by Intel, found at: https://github.com/01org/ProductionKernelQuilts with many cleanups and rewrites. The driver is currently provided only as built-in to follow other PMIC opregion drivers convention. The re-enumeration of devices at probe is required for fixing the issues on HP x2 210 G2. See bug#195689. +static int dc_ti_pmic_get_raw_temp(struct regmap *regmap, int reg) +{ + int temp_l, temp_h; + + if (regmap_read(regmap, reg, &temp_l) || + regmap_read(regmap, reg - 1, &temp_h)) + return -EIO; + + return temp_l | (temp_h & 0x3) << 8; +}I'm not sure I understand this "- 1" part along with choice of l and h suffixes. Does it mean the register is big endian?Good point, I need to check the original code and the values.It's really big-endian, the order is hi:lo. But, admittedly, the temperature code hasn't been tested, and it's possibly missing something. So I'm fine to drop that part in the first version, too.
I don't know if regmap allows you to define registers with different sizes for same chip, perhaps it would make sense to start register from hi part (and not doing non-intuitive "- 1", or maybe "+ 1" instead) and mark it in comment that is BE16. -- Andy Shevchenko [off-list ref] Intel Finland Oy