pinctrl: samsung: add support for gs101 wakeup mask programming
authorPeter Griffin <peter.griffin@linaro.org>
Thu, 19 Jun 2025 11:18:16 +0000 (12:18 +0100)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Wed, 25 Jun 2025 14:17:05 +0000 (16:17 +0200)
commit2642f55d44ce563f227dd9c620eda0dec8d882be
treeede04401da4935fcf28deabcddb4922abe1986ff
parentc8edb80494407f65a253ea63ffbae3fb831f397a
pinctrl: samsung: add support for gs101 wakeup mask programming

gs101 differs to other currently supported SoCs in that it has 3 wakeup
mask registers for the 67 external wakeup interrupt pins in alive and
far_alive.

EINT_WAKEUP_MASK  0x3A80 EINT[31:0]
EINT_WAKEUP_MASK2 0x3A84 EINT[63:32]
EINT_WAKEUP_MASK3 0x3A88 EINT[66:64]

Add gs101 specific callbacks and a dedicated gs101_wkup_irq_chip struct to
handle these differences.

The current wakeup mask with upstream is programmed as
WAKEUP_MASK0[0x3A80] value[0xFFFFFFFF]
WAKEUP_MASK1[0x3A84] value[0xF2FFEFFF]
WAKEUP_MASK2[0x3A88] value[0xFFFFFFFF]

Which corresponds to the following wakeup sources:
gpa7-3  vol down
gpa8-1  vol up
gpa10-1 power
gpa8-2  typec-int

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Link: https://lore.kernel.org/r/20250619-gs101-eint-mask-v1-2-89438cfd7499@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/pinctrl/samsung/pinctrl-exynos.c
drivers/pinctrl/samsung/pinctrl-samsung.h
include/linux/soc/samsung/exynos-regs-pmu.h