summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/intel/pinctrl-alderlake.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/intel/pinctrl-alderlake.c')
-rw-r--r--drivers/pinctrl/intel/pinctrl-alderlake.c92
1 files changed, 35 insertions, 57 deletions
diff --git a/drivers/pinctrl/intel/pinctrl-alderlake.c b/drivers/pinctrl/intel/pinctrl-alderlake.c
index 427febe09b69..7bf1d5c285a0 100644
--- a/drivers/pinctrl/intel/pinctrl-alderlake.c
+++ b/drivers/pinctrl/intel/pinctrl-alderlake.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -26,33 +27,11 @@
#define ADL_S_GPI_IS 0x200
#define ADL_S_GPI_IE 0x220
-#define ADL_GPP(r, s, e, g) \
- { \
- .reg_num = (r), \
- .base = (s), \
- .size = ((e) - (s) + 1), \
- .gpio_base = (g), \
- }
-
-#define ADL_COMMUNITY(b, s, e, g, v) \
- { \
- .barno = (b), \
- .padown_offset = ADL_##v##_PAD_OWN, \
- .padcfglock_offset = ADL_##v##_PADCFGLOCK, \
- .hostown_offset = ADL_##v##_HOSTSW_OWN, \
- .is_offset = ADL_##v##_GPI_IS, \
- .ie_offset = ADL_##v##_GPI_IE, \
- .pin_base = (s), \
- .npins = ((e) - (s) + 1), \
- .gpps = (g), \
- .ngpps = ARRAY_SIZE(g), \
- }
-
#define ADL_N_COMMUNITY(b, s, e, g) \
- ADL_COMMUNITY(b, s, e, g, N)
+ INTEL_COMMUNITY_GPPS(b, s, e, g, ADL_N)
#define ADL_S_COMMUNITY(b, s, e, g) \
- ADL_COMMUNITY(b, s, e, g, S)
+ INTEL_COMMUNITY_GPPS(b, s, e, g, ADL_S)
/* Alder Lake-N */
static const struct pinctrl_pin_desc adln_pins[] = {
@@ -329,28 +308,28 @@ static const struct pinctrl_pin_desc adln_pins[] = {
};
static const struct intel_padgroup adln_community0_gpps[] = {
- ADL_GPP(0, 0, 25, 0), /* GPP_B */
- ADL_GPP(1, 26, 41, 32), /* GPP_T */
- ADL_GPP(2, 42, 66, 64), /* GPP_A */
+ INTEL_GPP(0, 0, 25, 0), /* GPP_B */
+ INTEL_GPP(1, 26, 41, 32), /* GPP_T */
+ INTEL_GPP(2, 42, 66, 64), /* GPP_A */
};
static const struct intel_padgroup adln_community1_gpps[] = {
- ADL_GPP(0, 67, 74, 96), /* GPP_S */
- ADL_GPP(1, 75, 94, 128), /* GPP_I */
- ADL_GPP(2, 95, 118, 160), /* GPP_H */
- ADL_GPP(3, 119, 139, 192), /* GPP_D */
- ADL_GPP(4, 140, 168, 224), /* vGPIO */
+ INTEL_GPP(0, 67, 74, 96), /* GPP_S */
+ INTEL_GPP(1, 75, 94, 128), /* GPP_I */
+ INTEL_GPP(2, 95, 118, 160), /* GPP_H */
+ INTEL_GPP(3, 119, 139, 192), /* GPP_D */
+ INTEL_GPP(4, 140, 168, 224), /* vGPIO */
};
static const struct intel_padgroup adln_community4_gpps[] = {
- ADL_GPP(0, 169, 192, 256), /* GPP_C */
- ADL_GPP(1, 193, 217, 288), /* GPP_F */
- ADL_GPP(2, 218, 223, INTEL_GPIO_BASE_NOMAP), /* HVCMOS */
- ADL_GPP(3, 224, 248, 320), /* GPP_E */
+ INTEL_GPP(0, 169, 192, 256), /* GPP_C */
+ INTEL_GPP(1, 193, 217, 288), /* GPP_F */
+ INTEL_GPP(2, 218, 223, INTEL_GPIO_BASE_NOMAP), /* HVCMOS */
+ INTEL_GPP(3, 224, 248, 320), /* GPP_E */
};
static const struct intel_padgroup adln_community5_gpps[] = {
- ADL_GPP(0, 249, 256, 352), /* GPP_R */
+ INTEL_GPP(0, 249, 256, 352), /* GPP_R */
};
static const struct intel_community adln_communities[] = {
@@ -693,35 +672,35 @@ static const struct pinctrl_pin_desc adls_pins[] = {
};
static const struct intel_padgroup adls_community0_gpps[] = {
- ADL_GPP(0, 0, 24, 0), /* GPP_I */
- ADL_GPP(1, 25, 47, 32), /* GPP_R */
- ADL_GPP(2, 48, 59, 64), /* GPP_J */
- ADL_GPP(3, 60, 86, 96), /* vGPIO */
- ADL_GPP(4, 87, 94, 128), /* vGPIO_0 */
+ INTEL_GPP(0, 0, 24, 0), /* GPP_I */
+ INTEL_GPP(1, 25, 47, 32), /* GPP_R */
+ INTEL_GPP(2, 48, 59, 64), /* GPP_J */
+ INTEL_GPP(3, 60, 86, 96), /* vGPIO */
+ INTEL_GPP(4, 87, 94, 128), /* vGPIO_0 */
};
static const struct intel_padgroup adls_community1_gpps[] = {
- ADL_GPP(0, 95, 118, 160), /* GPP_B */
- ADL_GPP(1, 119, 126, 192), /* GPP_G */
- ADL_GPP(2, 127, 150, 224), /* GPP_H */
+ INTEL_GPP(0, 95, 118, 160), /* GPP_B */
+ INTEL_GPP(1, 119, 126, 192), /* GPP_G */
+ INTEL_GPP(2, 127, 150, 224), /* GPP_H */
};
static const struct intel_padgroup adls_community3_gpps[] = {
- ADL_GPP(0, 151, 159, INTEL_GPIO_BASE_NOMAP), /* SPI0 */
- ADL_GPP(1, 160, 175, 256), /* GPP_A */
- ADL_GPP(2, 176, 199, 288), /* GPP_C */
+ INTEL_GPP(0, 151, 159, INTEL_GPIO_BASE_NOMAP), /* SPI0 */
+ INTEL_GPP(1, 160, 175, 256), /* GPP_A */
+ INTEL_GPP(2, 176, 199, 288), /* GPP_C */
};
static const struct intel_padgroup adls_community4_gpps[] = {
- ADL_GPP(0, 200, 207, 320), /* GPP_S */
- ADL_GPP(1, 208, 230, 352), /* GPP_E */
- ADL_GPP(2, 231, 245, 384), /* GPP_K */
- ADL_GPP(3, 246, 269, 416), /* GPP_F */
+ INTEL_GPP(0, 200, 207, 320), /* GPP_S */
+ INTEL_GPP(1, 208, 230, 352), /* GPP_E */
+ INTEL_GPP(2, 231, 245, 384), /* GPP_K */
+ INTEL_GPP(3, 246, 269, 416), /* GPP_F */
};
static const struct intel_padgroup adls_community5_gpps[] = {
- ADL_GPP(0, 270, 294, 448), /* GPP_D */
- ADL_GPP(1, 295, 303, INTEL_GPIO_BASE_NOMAP), /* JTAG */
+ INTEL_GPP(0, 270, 294, 448), /* GPP_D */
+ INTEL_GPP(1, 295, 303, INTEL_GPIO_BASE_NOMAP), /* JTAG */
};
static const struct intel_community adls_communities[] = {
@@ -747,14 +726,12 @@ static const struct acpi_device_id adl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, adl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(adl_pinctrl_pm_ops);
-
static struct platform_driver adl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "alderlake-pinctrl",
.acpi_match_table = adl_pinctrl_acpi_match,
- .pm = &adl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(adl_pinctrl_driver);
@@ -762,3 +739,4 @@ module_platform_driver(adl_pinctrl_driver);
MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>");
MODULE_DESCRIPTION("Intel Alder Lake PCH pinctrl/GPIO driver");
MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS("PINCTRL_INTEL");