| /kernel/linux/linux-6.6/drivers/pinctrl/mediatek/ |
| D | mtk-eint.c | 22 #include "mtk-eint.h" 67 static void __iomem *mtk_eint_get_offset(struct mtk_eint *eint, in mtk_eint_get_offset() argument 74 if (eint_num >= eint->hw->ap_num) in mtk_eint_get_offset() 75 eint_base = eint->hw->ap_num; in mtk_eint_get_offset() 77 reg = eint->base + offset + ((eint_num - eint_base) / 32) * 4; in mtk_eint_get_offset() 82 static unsigned int mtk_eint_can_en_debounce(struct mtk_eint *eint, in mtk_eint_can_en_debounce() argument 87 void __iomem *reg = mtk_eint_get_offset(eint, eint_num, in mtk_eint_can_en_debounce() 88 eint->regs->sens); in mtk_eint_can_en_debounce() 95 if (eint_num < eint->hw->db_cnt && sens != MTK_EINT_EDGE_SENSITIVE) in mtk_eint_can_en_debounce() 101 static int mtk_eint_flip_edge(struct mtk_eint *eint, int hwirq) in mtk_eint_flip_edge() argument [all …]
|
| D | mtk-eint.h | 67 /* Used to fit into various EINT device */ 78 int mtk_eint_do_init(struct mtk_eint *eint); 79 int mtk_eint_do_suspend(struct mtk_eint *eint); 80 int mtk_eint_do_resume(struct mtk_eint *eint); 81 int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n, 83 int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n); 86 static inline int mtk_eint_do_init(struct mtk_eint *eint) in mtk_eint_do_init() argument 91 static inline int mtk_eint_do_suspend(struct mtk_eint *eint) in mtk_eint_do_suspend() argument 96 static inline int mtk_eint_do_resume(struct mtk_eint *eint) in mtk_eint_do_resume() argument 101 static inline int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n, in mtk_eint_set_debounce() argument [all …]
|
| D | pinctrl-mtk-common-v2.c | 18 #include "mtk-eint.h" 243 if (desc[i].eint.eint_n == eint_n) in mtk_xt_find_eint_num() 253 * Some modules use virtual GPIO as eint (e.g. pmif or usb). 254 * In MTK platform, external interrupt (EINT) and GPIO is 1-1 mapping 255 * and we can set GPIO as eint. 256 * But some modules use specific eint which doesn't have real GPIO pin. 267 /* if the GPIO is not supported for eint mode */ in mtk_is_virt_gpio() 268 if (desc->eint.eint_m == NO_EINT_SUPPORT) in mtk_is_virt_gpio() 271 if (desc->funcs && !desc->funcs[desc->eint.eint_m].name) in mtk_is_virt_gpio() 290 * Only eint virtual eint number is greater than gpio number. in mtk_xt_get_gpio_n() [all …]
|
| D | pinctrl-mtk-common.c | 31 #include "mtk-eint.h" 737 if (pin->eint.eintnum == eint_num) in mtk_find_pin_by_eint_num() 867 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_to_irq() 870 eint_n = pin->eint.eintnum; in mtk_gpio_to_irq() 872 return mtk_eint_find_irq(pctl->eint, eint_n); in mtk_gpio_to_irq() 887 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_set_config() 891 eint_n = pin->eint.eintnum; in mtk_gpio_set_config() 893 return mtk_eint_set_debounce(pctl->eint, eint_n, debounce); in mtk_gpio_set_config() 913 return mtk_eint_do_suspend(pctl->eint); in mtk_eint_suspend() 920 return mtk_eint_do_resume(pctl->eint); in mtk_eint_resume() [all …]
|
| D | pinctrl-mtk-common-v2.h | 197 * for eint data per pin 198 * @eint_m: the eint mux for this pin 199 * @eitn_n: the eint number for this pin 211 * @eint: the eint data for this pin 220 struct mtk_eint_desc eint; member 296 struct mtk_eint *eint; member
|
| D | pinctrl-moore.c | 528 if (!hw->eint) in mtk_gpio_to_irq() 533 if (desc->eint.eint_n == (u16)EINT_NA) in mtk_gpio_to_irq() 536 return mtk_eint_find_irq(hw->eint, desc->eint.eint_n); in mtk_gpio_to_irq() 550 if (!hw->eint || in mtk_gpio_set_config() 552 desc->eint.eint_n == (u16)EINT_NA) in mtk_gpio_set_config() 557 return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, debounce); in mtk_gpio_set_config() 722 "Failed to add EINT, but pinctrl still can work\n"); in mtk_moore_pinctrl_probe()
|
| /kernel/linux/linux-5.10/drivers/pinctrl/mediatek/ |
| D | mtk-eint.c | 22 #include "mtk-eint.h" 51 static void __iomem *mtk_eint_get_offset(struct mtk_eint *eint, in mtk_eint_get_offset() argument 58 if (eint_num >= eint->hw->ap_num) in mtk_eint_get_offset() 59 eint_base = eint->hw->ap_num; in mtk_eint_get_offset() 61 reg = eint->base + offset + ((eint_num - eint_base) / 32) * 4; in mtk_eint_get_offset() 66 static unsigned int mtk_eint_can_en_debounce(struct mtk_eint *eint, in mtk_eint_can_en_debounce() argument 71 void __iomem *reg = mtk_eint_get_offset(eint, eint_num, in mtk_eint_can_en_debounce() 72 eint->regs->sens); in mtk_eint_can_en_debounce() 79 if (eint_num < eint->hw->db_cnt && sens != MTK_EINT_EDGE_SENSITIVE) in mtk_eint_can_en_debounce() 85 static int mtk_eint_flip_edge(struct mtk_eint *eint, int hwirq) in mtk_eint_flip_edge() argument [all …]
|
| D | mtk-eint.h | 62 /* Used to fit into various EINT device */ 72 int mtk_eint_do_init(struct mtk_eint *eint); 73 int mtk_eint_do_suspend(struct mtk_eint *eint); 74 int mtk_eint_do_resume(struct mtk_eint *eint); 75 int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n, 77 int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n); 80 static inline int mtk_eint_do_init(struct mtk_eint *eint) in mtk_eint_do_init() argument 85 static inline int mtk_eint_do_suspend(struct mtk_eint *eint) in mtk_eint_do_suspend() argument 90 static inline int mtk_eint_do_resume(struct mtk_eint *eint) in mtk_eint_do_resume() argument 95 static inline int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n, in mtk_eint_set_debounce() argument [all …]
|
| D | pinctrl-mtk-common-v2.c | 18 #include "mtk-eint.h" 238 if (desc[i].eint.eint_n == eint_n) in mtk_xt_find_eint_num() 248 * Some modules use virtual GPIO as eint (e.g. pmif or usb). 249 * In MTK platform, external interrupt (EINT) and GPIO is 1-1 mapping 250 * and we can set GPIO as eint. 251 * But some modules use specific eint which doesn't have real GPIO pin. 262 /* if the GPIO is not supported for eint mode */ in mtk_is_virt_gpio() 263 if (desc->eint.eint_m == NO_EINT_SUPPORT) in mtk_is_virt_gpio() 266 if (desc->funcs && !desc->funcs[desc->eint.eint_m].name) in mtk_is_virt_gpio() 285 * Only eint virtual eint number is greater than gpio number. in mtk_xt_get_gpio_n() [all …]
|
| D | pinctrl-mtk-common.c | 33 #include "mtk-eint.h" 705 if (pin->eint.eintnum == eint_num) in mtk_find_pin_by_eint_num() 835 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_to_irq() 838 eint_n = pin->eint.eintnum; in mtk_gpio_to_irq() 840 return mtk_eint_find_irq(pctl->eint, eint_n); in mtk_gpio_to_irq() 855 if (pin->eint.eintnum == NO_EINT_SUPPORT) in mtk_gpio_set_config() 859 eint_n = pin->eint.eintnum; in mtk_gpio_set_config() 861 return mtk_eint_set_debounce(pctl->eint, eint_n, debounce); in mtk_gpio_set_config() 882 return mtk_eint_do_suspend(pctl->eint); in mtk_eint_suspend() 889 return mtk_eint_do_resume(pctl->eint); in mtk_eint_resume() [all …]
|
| D | pinctrl-mtk-common-v2.h | 155 * for eint data per pin 156 * @eint_m: the eint mux for this pin 157 * @eitn_n: the eint number for this pin 169 * @eint: the eint data for this pin 178 struct mtk_eint_desc eint; member 251 struct mtk_eint *eint; member
|
| D | pinctrl-moore.c | 474 if (!hw->eint) in mtk_gpio_to_irq() 479 if (desc->eint.eint_n == (u16)EINT_NA) in mtk_gpio_to_irq() 482 return mtk_eint_find_irq(hw->eint, desc->eint.eint_n); in mtk_gpio_to_irq() 494 if (!hw->eint || in mtk_gpio_set_config() 496 desc->eint.eint_n == (u16)EINT_NA) in mtk_gpio_set_config() 501 return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, debounce); in mtk_gpio_set_config() 671 "Failed to add EINT, but pinctrl still can work\n"); in mtk_moore_pinctrl_probe()
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/pinctrl/ |
| D | samsung,pinctrl-wakeup-interrupt.yaml | 32 - samsung,s3c2410-wakeup-eint 33 - samsung,s3c2412-wakeup-eint 34 - samsung,s3c64xx-wakeup-eint 35 - samsung,s5pv210-wakeup-eint 36 - samsung,exynos4210-wakeup-eint 37 - samsung,exynos7-wakeup-eint 38 - samsung,exynos850-wakeup-eint 39 - samsung,exynosautov9-wakeup-eint 56 - samsung,s3c2410-wakeup-eint 57 - samsung,s3c2412-wakeup-eint [all …]
|
| D | mediatek,mt6795-pinctrl.yaml | 35 Physical address base for GPIO base and eint registers. 41 - const: eint 52 - description: EINT interrupt 53 - description: EINT event_b interrupt 187 reg-names = "base", "eint";
|
| D | mediatek,mt6779-pinctrl.yaml | 24 description: Physical addresses for GPIO base(s) and EINT registers. 83 - const: eint 106 const: eint 216 "eint";
|
| /kernel/linux/linux-5.10/drivers/pinctrl/samsung/ |
| D | pinctrl-exynos-arm64.c | 4 // with eint support. 48 /* Must start with EINTG banks, ordered by EINT group number. */ 62 /* Must start with EINTG banks, ordered by EINT group number. */ 69 /* Must start with EINTG banks, ordered by EINT group number. */ 75 /* Must start with EINTG banks, ordered by EINT group number. */ 81 /* Must start with EINTG banks, ordered by EINT group number. */ 87 /* Must start with EINTG banks, ordered by EINT group number. */ 98 /* Must start with EINTG banks, ordered by EINT group number. */ 104 /* Must start with EINTG banks, ordered by EINT group number. */ 110 /* Must start with EINTG banks, ordered by EINT group number. */ [all …]
|
| D | pinctrl-exynos-arm.c | 3 // Exynos specific support for Samsung pinctrl/gpiolib driver with eint support. 92 /* Must start with EINTG banks, ordered by EINT group number. */ 152 /* Must start with EINTG banks, ordered by EINT group number. */ 164 /* Must start with EINTG banks, ordered by EINT group number. */ 239 /* Must start with EINTG banks, ordered by EINT group number. */ 260 /* Must start with EINTG banks, ordered by EINT group number. */ 285 /* Must start with EINTG banks, ordered by EINT group number. */ 356 /* Must start with EINTG banks, ordered by EINT group number. */ 374 /* Must start with EINTG banks, ordered by EINT group number. */ 402 /* Must start with EINTG banks, ordered by EINT group number. */ [all …]
|
| D | pinctrl-samsung.h | 113 * @eint_func: function to set in CON register to configure pin as EINT. 115 * @eint_mask: bit mask of pins which support EINT function. 116 * @eint_offset: SoC-specific EINT register or interrupt offset of bank. 137 * @eint_base: base address of the pin-bank EINT registers. 138 * @eint_func: function to set in CON register to configure pin as EINT. 140 * @eint_mask: bit mask of pins which support EINT function. 141 * @eint_offset: SoC-specific EINT register or interrupt offset of bank.
|
| D | pinctrl-s3c24xx.c | 83 * struct s3c24xx_eint_data - EINT common data 85 * @domains: IRQ domains of particular EINT interrupts 246 /* Something must be really wrong if an unmapped EINT is unmasked */ in s3c2410_demux_eint0_3() 304 /* Something must be really wrong if an unmapped EINT is unmasked */ in s3c2412_demux_eint0_3() 348 .name = "s3c-eint", 377 /* Something is really wrong if an unmapped EINT is unmasked */ in s3c24xx_demux_eint() 463 { .compatible = "samsung,s3c2410-wakeup-eint", .data = (void *)1 }, 464 { .compatible = "samsung,s3c2412-wakeup-eint", .data = (void *)0 }, 507 dev_err(dev, "failed to get wakeup EINT IRQ %d\n", i); in s3c24xx_eint_init()
|
| D | pinctrl-s3c64xx.c | 218 * struct s3c64xx_eint_gpio_data - GPIO EINT data 220 * @domains: array of domains related to EINT interrupt groups 228 * Common functions for S3C64xx EINT configuration 300 * Functions for EINT GPIO configuration (EINT groups 1-9) 436 * Something must be really wrong if an unmapped EINT in s3c64xx_eint_gpio_irq() 616 * Something must be really wrong if an unmapped EINT in s3c64xx_irq_demux_eint() 680 { .compatible = "samsung,s3c64xx-wakeup-eint", }, 718 dev_err(dev, "failed to get wakeup EINT IRQ %d\n", i); in s3c64xx_eint_eint0_init()
|
| /kernel/linux/linux-6.6/drivers/pinctrl/samsung/ |
| D | pinctrl-exynos-arm64.c | 4 // with eint support. 66 /* Must start with EINTG banks, ordered by EINT group number. */ 80 /* Must start with EINTG banks, ordered by EINT group number. */ 87 /* Must start with EINTG banks, ordered by EINT group number. */ 93 /* Must start with EINTG banks, ordered by EINT group number. */ 99 /* Must start with EINTG banks, ordered by EINT group number. */ 105 /* Must start with EINTG banks, ordered by EINT group number. */ 116 /* Must start with EINTG banks, ordered by EINT group number. */ 122 /* Must start with EINTG banks, ordered by EINT group number. */ 128 /* Must start with EINTG banks, ordered by EINT group number. */ [all …]
|
| D | pinctrl-exynos-arm.c | 3 // Exynos specific support for Samsung pinctrl/gpiolib driver with eint support. 92 /* Must start with EINTG banks, ordered by EINT group number. */ 152 /* Must start with EINTG banks, ordered by EINT group number. */ 164 /* Must start with EINTG banks, ordered by EINT group number. */ 239 /* Must start with EINTG banks, ordered by EINT group number. */ 260 /* Must start with EINTG banks, ordered by EINT group number. */ 285 /* Must start with EINTG banks, ordered by EINT group number. */ 356 /* Must start with EINTG banks, ordered by EINT group number. */ 374 /* Must start with EINTG banks, ordered by EINT group number. */ 402 /* Must start with EINTG banks, ordered by EINT group number. */ [all …]
|
| D | pinctrl-samsung.h | 121 * @eint_func: function to set in CON register to configure pin as EINT. 123 * @eint_mask: bit mask of pins which support EINT function. 124 * @eint_offset: SoC-specific EINT register or interrupt offset of bank. 145 * @eint_base: base address of the pin-bank EINT registers. 146 * @eint_func: function to set in CON register to configure pin as EINT. 148 * @eint_mask: bit mask of pins which support EINT function. 149 * @eint_offset: SoC-specific EINT register or interrupt offset of bank.
|
| D | pinctrl-s3c64xx.c | 218 * struct s3c64xx_eint_gpio_data - GPIO EINT data 220 * @domains: array of domains related to EINT interrupt groups 228 * Common functions for S3C64xx EINT configuration 300 * Functions for EINT GPIO configuration (EINT groups 1-9) 436 * Something must be really wrong if an unmapped EINT in s3c64xx_eint_gpio_irq() 615 * Something must be really wrong if an unmapped EINT in s3c64xx_irq_demux_eint() 677 { .compatible = "samsung,s3c64xx-wakeup-eint", }, 715 dev_err(dev, "failed to get wakeup EINT IRQ %d\n", i); in s3c64xx_eint_eint0_init()
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/pinctrl/ |
| D | samsung-pinctrl.txt | 42 compatible = "samsung,exynos7-wakeup-eint"; 156 - samsung,s3c2410-wakeup-eint: represents wakeup interrupt controller 158 - samsung,s3c2412-wakeup-eint: represents wakeup interrupt controller 160 - samsung,s3c64xx-wakeup-eint: represents wakeup interrupt controller 162 - samsung,s5pv210-wakeup-eint: represents wakeup interrupt controller 164 - samsung,exynos4210-wakeup-eint: represents wakeup interrupt controller 166 - samsung,exynos7-wakeup-eint: represents wakeup interrupt controller 325 compatible = "samsung,exynos4210-wakeup-eint";
|