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 'intel-pinctrl-v6.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into devel

intel-pinctrl for v6.20-1

* Add Nova Lake to the list of supported platforms by platform driver
* Update Kconfig help text to clarify which drivers supports which platforms
* Convert more Intel pin control drivers to use intel_gpio_add_pin_ranges()

Signed-off-by: Linus Walleij <linusw@kernel.org>

+50 -40
+16 -6
drivers/pinctrl/intel/Kconfig
··· 45 45 of Intel PCH pins and using them as GPIOs. Currently the following 46 46 Intel SoCs / platforms require this to be functional: 47 47 - Lunar Lake 48 + - Nova Lake 48 49 - Panther Lake 49 50 50 51 config PINCTRL_ALDERLAKE ··· 53 52 select PINCTRL_INTEL 54 53 help 55 54 This pinctrl driver provides an interface that allows configuring 56 - of Intel Alder Lake PCH pins and using them as GPIOs. 55 + PCH pins of the following platforms and using them as GPIOs: 56 + - Alder Lake HX, N, and S 57 + - Raptor Lake HX, E, and S 58 + - Twin Lake 57 59 58 60 config PINCTRL_BROXTON 59 61 tristate "Intel Broxton pinctrl and GPIO driver" ··· 140 136 select PINCTRL_INTEL 141 137 help 142 138 This pinctrl driver provides an interface that allows configuring 143 - of Intel Meteor Lake pins and using them as GPIOs. 139 + SoC pins of the following platforms and using them as GPIOs: 140 + - Arrow Lake (all variants) 141 + - Meteor Lake (all variants) 144 142 145 143 config PINCTRL_METEORPOINT 146 144 tristate "Intel Meteor Point pinctrl and GPIO driver" 147 145 select PINCTRL_INTEL 148 146 help 149 - Meteor Point is the PCH of Intel Meteor Lake. This pinctrl driver 150 - provides an interface that allows configuring of PCH pins and 151 - using them as GPIOs. 147 + This pinctrl driver provides an interface that allows configuring 148 + PCH pins of the following platforms and using them as GPIOs: 149 + - Arrow Lake HX and S 152 150 153 151 config PINCTRL_SUNRISEPOINT 154 152 tristate "Intel Sunrisepoint pinctrl and GPIO driver" ··· 165 159 select PINCTRL_INTEL 166 160 help 167 161 This pinctrl driver provides an interface that allows configuring 168 - of Intel Tiger Lake PCH pins and using them as GPIOs. 162 + PCH pins of the following platforms and using them as GPIOs: 163 + - Alder Lake H, P, PS, and U 164 + - Raptor Lake H, P, PS, PX, and U 165 + - Rocket Lake S 166 + - Tiger Lake (all variants) 169 167 170 168 source "drivers/pinctrl/intel/Kconfig.tng" 171 169 endmenu
+23 -18
drivers/pinctrl/intel/pinctrl-baytrail.c
··· 101 101 u32 val; 102 102 }; 103 103 104 - #define COMMUNITY(p, n, map) \ 104 + #define BYT_COMMUNITY(p, n, g, map) \ 105 105 { \ 106 106 .pin_base = (p), \ 107 107 .npins = (n), \ 108 + .gpps = (g), \ 109 + .ngpps = ARRAY_SIZE(g), \ 108 110 .pad_map = (map),\ 109 111 } 110 112 ··· 362 360 FUNCTION("gpio", byt_score_gpio_groups), 363 361 }; 364 362 363 + static const struct intel_padgroup byt_score_gpps[] = { 364 + INTEL_GPP(0, 0, 31, 0), 365 + INTEL_GPP(1, 32, 63, 32), 366 + INTEL_GPP(2, 64, 95, 64), 367 + INTEL_GPP(3, 96, 101, 96), 368 + }; 369 + 365 370 static const struct intel_community byt_score_communities[] = { 366 - COMMUNITY(0, BYT_NGPIO_SCORE, byt_score_pins_map), 371 + BYT_COMMUNITY(0, 102, byt_score_gpps, byt_score_pins_map), 367 372 }; 368 373 369 374 static const struct intel_pinctrl_soc_data byt_score_soc_data = { ··· 492 483 FUNCTION("pmu_clk", byt_sus_pmu_clk_groups), 493 484 }; 494 485 486 + static const struct intel_padgroup byt_sus_gpps[] = { 487 + INTEL_GPP(0, 0, 31, 0), 488 + INTEL_GPP(1, 32, 43, 32), 489 + }; 490 + 495 491 static const struct intel_community byt_sus_communities[] = { 496 - COMMUNITY(0, BYT_NGPIO_SUS, byt_sus_pins_map), 492 + BYT_COMMUNITY(0, 44, byt_sus_gpps, byt_sus_pins_map), 497 493 }; 498 494 499 495 static const struct intel_pinctrl_soc_data byt_sus_soc_data = { ··· 550 536 3, 6, 10, 13, 2, 5, 9, 7, 551 537 }; 552 538 539 + static const struct intel_padgroup byt_ncore_gpps[] = { 540 + INTEL_GPP(0, 0, 27, 0), 541 + }; 542 + 553 543 static const struct intel_community byt_ncore_communities[] = { 554 - COMMUNITY(0, BYT_NGPIO_NCORE, byt_ncore_pins_map), 544 + BYT_COMMUNITY(0, 28, byt_ncore_gpps, byt_ncore_pins_map), 555 545 }; 556 546 557 547 static const struct intel_pinctrl_soc_data byt_ncore_soc_data = { ··· 1508 1490 return 0; 1509 1491 } 1510 1492 1511 - static int byt_gpio_add_pin_ranges(struct gpio_chip *chip) 1512 - { 1513 - struct intel_pinctrl *vg = gpiochip_get_data(chip); 1514 - struct device *dev = vg->dev; 1515 - int ret; 1516 - 1517 - ret = gpiochip_add_pin_range(chip, dev_name(dev), 0, 0, vg->soc->npins); 1518 - if (ret) 1519 - return dev_err_probe(dev, ret, "failed to add GPIO pin range\n"); 1520 - 1521 - return 0; 1522 - } 1523 - 1524 1493 static int byt_gpio_probe(struct intel_pinctrl *vg) 1525 1494 { 1526 1495 struct platform_device *pdev = to_platform_device(vg->dev); ··· 1520 1515 gc->label = dev_name(vg->dev); 1521 1516 gc->base = -1; 1522 1517 gc->can_sleep = false; 1523 - gc->add_pin_ranges = byt_gpio_add_pin_ranges; 1518 + gc->add_pin_ranges = intel_gpio_add_pin_ranges; 1524 1519 gc->parent = vg->dev; 1525 1520 gc->ngpio = vg->soc->npins; 1526 1521
+11 -16
drivers/pinctrl/intel/pinctrl-lynxpoint.c
··· 29 29 30 30 #include "pinctrl-intel.h" 31 31 32 - #define COMMUNITY(p, n) \ 32 + #define LPTLP_COMMUNITY(p, n, g) \ 33 33 { \ 34 34 .pin_base = (p), \ 35 35 .npins = (n), \ 36 + .gpps = (g), \ 37 + .ngpps = ARRAY_SIZE(g), \ 36 38 } 37 39 38 40 static const struct pinctrl_pin_desc lptlp_pins[] = { ··· 135 133 PINCTRL_PIN(94, "GP94_UART0_CTSB"), 136 134 }; 137 135 136 + static const struct intel_padgroup lptlp_gpps[] = { 137 + INTEL_GPP(0, 0, 31, 0), 138 + INTEL_GPP(1, 32, 63, 32), 139 + INTEL_GPP(2, 64, 94, 64), 140 + }; 141 + 138 142 static const struct intel_community lptlp_communities[] = { 139 - COMMUNITY(0, 95), 143 + LPTLP_COMMUNITY(0, 95, lptlp_gpps), 140 144 }; 141 145 142 146 static const struct intel_pinctrl_soc_data lptlp_soc_data = { ··· 700 692 return 0; 701 693 } 702 694 703 - static int lp_gpio_add_pin_ranges(struct gpio_chip *chip) 704 - { 705 - struct intel_pinctrl *lg = gpiochip_get_data(chip); 706 - struct device *dev = lg->dev; 707 - int ret; 708 - 709 - ret = gpiochip_add_pin_range(chip, dev_name(dev), 0, 0, lg->soc->npins); 710 - if (ret) 711 - return dev_err_probe(dev, ret, "failed to add GPIO pin range\n"); 712 - 713 - return 0; 714 - } 715 - 716 695 static int lp_gpio_probe(struct platform_device *pdev) 717 696 { 718 697 const struct intel_pinctrl_soc_data *soc; ··· 772 777 gc->base = -1; 773 778 gc->ngpio = LP_NUM_GPIO; 774 779 gc->can_sleep = false; 775 - gc->add_pin_ranges = lp_gpio_add_pin_ranges; 780 + gc->add_pin_ranges = intel_gpio_add_pin_ranges; 776 781 gc->parent = dev; 777 782 778 783 /* set up interrupts */