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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pinctrl-v6.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:

- One Intel patch that I mistakenly merged into for-next despite it
belonging in fixes: add Arrow Lake-H/U ACPI ID so this Arrow Lake
chip probes.

- One fix making the CY895x0 reg cache work, which is good because it
makes the device work too.

* tag 'pinctrl-v6.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: pinctrl-cy8c95x0: Fix regcache
pinctrl: meteorlake: Add Arrow Lake-H/U ACPI ID

+10 -5
+1
drivers/pinctrl/intel/pinctrl-meteorlake.c
··· 584 584 }; 585 585 586 586 static const struct acpi_device_id mtl_pinctrl_acpi_match[] = { 587 + { "INTC105E", (kernel_ulong_t)&mtlp_soc_data }, 587 588 { "INTC1083", (kernel_ulong_t)&mtlp_soc_data }, 588 589 { "INTC1082", (kernel_ulong_t)&mtls_soc_data }, 589 590 { }
+9 -5
drivers/pinctrl/pinctrl-cy8c95x0.c
··· 62 62 #define MAX_BANK 8 63 63 #define BANK_SZ 8 64 64 #define MAX_LINE (MAX_BANK * BANK_SZ) 65 - #define MUXED_STRIDE (CY8C95X0_DRV_HIZ - CY8C95X0_INTMASK) 65 + #define MUXED_STRIDE 16 66 66 #define CY8C95X0_GPIO_MASK GENMASK(7, 0) 67 - #define CY8C95X0_VIRTUAL (CY8C95X0_COMMAND + 1) 67 + #define CY8C95X0_VIRTUAL 0x40 68 68 #define CY8C95X0_MUX_REGMAP_TO_OFFSET(x, p) \ 69 - (CY8C95X0_VIRTUAL + (x) - CY8C95X0_INTMASK + (p) * MUXED_STRIDE) 69 + (CY8C95X0_VIRTUAL + (x) - CY8C95X0_PORTSEL + (p) * MUXED_STRIDE) 70 70 71 71 static const struct i2c_device_id cy8c95x0_id[] = { 72 72 { "cy8c9520", 20, }, ··· 329 329 330 330 static bool cy8c95x0_readable_register(struct device *dev, unsigned int reg) 331 331 { 332 - if (reg >= CY8C95X0_VIRTUAL) 332 + /* 333 + * Only 12 registers are present per port (see Table 6 in the 334 + * datasheet). 335 + */ 336 + if (reg >= CY8C95X0_VIRTUAL && (reg % MUXED_STRIDE) < 12) 333 337 return true; 334 338 335 339 switch (reg) { ··· 448 444 .selector_reg = CY8C95X0_PORTSEL, 449 445 .selector_mask = 0x07, 450 446 .selector_shift = 0x0, 451 - .window_start = CY8C95X0_INTMASK, 447 + .window_start = CY8C95X0_PORTSEL, 452 448 .window_len = MUXED_STRIDE, 453 449 } 454 450 };