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

Merge tag 'intel-pinctrl-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into fixes

intel-pinctrl for v5.10-2

* Respect bias setting when comes from ACPI

The following is an automated git shortlog grouped by driver:

intel:
- Set default bias in case no particular value given
- Fix 2 kOhm bias which is 833 Ohm

+30 -10
+30 -10
drivers/pinctrl/intel/pinctrl-intel.c
··· 62 62 #define PADCFG1_TERM_UP BIT(13) 63 63 #define PADCFG1_TERM_SHIFT 10 64 64 #define PADCFG1_TERM_MASK GENMASK(12, 10) 65 - #define PADCFG1_TERM_20K 4 66 - #define PADCFG1_TERM_2K 3 67 - #define PADCFG1_TERM_5K 2 68 - #define PADCFG1_TERM_1K 1 65 + #define PADCFG1_TERM_20K BIT(2) 66 + #define PADCFG1_TERM_5K BIT(1) 67 + #define PADCFG1_TERM_1K BIT(0) 68 + #define PADCFG1_TERM_833 (BIT(1) | BIT(0)) 69 69 70 70 #define PADCFG2 0x008 71 71 #define PADCFG2_DEBEN BIT(0) ··· 549 549 return -EINVAL; 550 550 551 551 switch (term) { 552 + case PADCFG1_TERM_833: 553 + *arg = 833; 554 + break; 552 555 case PADCFG1_TERM_1K: 553 556 *arg = 1000; 554 - break; 555 - case PADCFG1_TERM_2K: 556 - *arg = 2000; 557 557 break; 558 558 case PADCFG1_TERM_5K: 559 559 *arg = 5000; ··· 570 570 return -EINVAL; 571 571 572 572 switch (term) { 573 + case PADCFG1_TERM_833: 574 + if (!(community->features & PINCTRL_FEATURE_1K_PD)) 575 + return -EINVAL; 576 + *arg = 833; 577 + break; 573 578 case PADCFG1_TERM_1K: 574 579 if (!(community->features & PINCTRL_FEATURE_1K_PD)) 575 580 return -EINVAL; ··· 683 678 684 679 value |= PADCFG1_TERM_UP; 685 680 681 + /* Set default strength value in case none is given */ 682 + if (arg == 1) 683 + arg = 5000; 684 + 686 685 switch (arg) { 687 686 case 20000: 688 687 value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT; ··· 694 685 case 5000: 695 686 value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT; 696 687 break; 697 - case 2000: 698 - value |= PADCFG1_TERM_2K << PADCFG1_TERM_SHIFT; 699 - break; 700 688 case 1000: 701 689 value |= PADCFG1_TERM_1K << PADCFG1_TERM_SHIFT; 690 + break; 691 + case 833: 692 + value |= PADCFG1_TERM_833 << PADCFG1_TERM_SHIFT; 702 693 break; 703 694 default: 704 695 ret = -EINVAL; ··· 708 699 709 700 case PIN_CONFIG_BIAS_PULL_DOWN: 710 701 value &= ~(PADCFG1_TERM_UP | PADCFG1_TERM_MASK); 702 + 703 + /* Set default strength value in case none is given */ 704 + if (arg == 1) 705 + arg = 5000; 711 706 712 707 switch (arg) { 713 708 case 20000: ··· 726 713 break; 727 714 } 728 715 value |= PADCFG1_TERM_1K << PADCFG1_TERM_SHIFT; 716 + break; 717 + case 833: 718 + if (!(community->features & PINCTRL_FEATURE_1K_PD)) { 719 + ret = -EINVAL; 720 + break; 721 + } 722 + value |= PADCFG1_TERM_833 << PADCFG1_TERM_SHIFT; 729 723 break; 730 724 default: 731 725 ret = -EINVAL;