aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrice Chotard <patrice.chotard@st.com>2016-08-10 03:39:11 -0400
committerLee Jones <lee.jones@linaro.org>2016-08-10 04:24:39 -0400
commit897ac6674c64ca94df5b70ea5c6815a296e1d32a (patch)
tree37892782c76bc796df4187061e4396fc3ff362cd
parentc16bee7897bffc3814390c9279bf01137a6bd595 (diff)
mfd: stmpe: Rework registers access
this update allows to use registers map as following : regs[reg_index + offset] instead of regs[reg_index] + offset This makes code clearer and will facilitate the addition of STMPE1600 on which LSB and MSB registers are respectively located at addr and addr + 1. Despite for all others STMPE variant, LSB and MSB registers are respectively located in reverse order at addr + 1 and addr. For variant which have 3 registers's bank, we use LSB,CSB and MSB indexes which contains respectively LSB (or LOW), CSB (or MID) and MSB (or HIGH) register addresses (STMPE1801/STMPE24xx). For variant which have 2 registers's bank, we use LSB and CSB indexes only. In this case the CSB index contains the MSB regs address (STMPE 1601). Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r--drivers/mfd/stmpe.c48
-rw-r--r--drivers/mfd/stmpe.h49
-rw-r--r--include/linux/mfd/stmpe.h18
3 files changed, 105 insertions, 10 deletions
diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c
index a0704767a050..1877d1ea2e7c 100644
--- a/drivers/mfd/stmpe.c
+++ b/drivers/mfd/stmpe.c
@@ -483,7 +483,7 @@ static const u8 stmpe811_regs[] = {
483 [STMPE_IDX_GPAFR_U_MSB] = STMPE811_REG_GPIO_AF, 483 [STMPE_IDX_GPAFR_U_MSB] = STMPE811_REG_GPIO_AF,
484 [STMPE_IDX_IEGPIOR_LSB] = STMPE811_REG_GPIO_INT_EN, 484 [STMPE_IDX_IEGPIOR_LSB] = STMPE811_REG_GPIO_INT_EN,
485 [STMPE_IDX_ISGPIOR_MSB] = STMPE811_REG_GPIO_INT_STA, 485 [STMPE_IDX_ISGPIOR_MSB] = STMPE811_REG_GPIO_INT_STA,
486 [STMPE_IDX_GPEDR_MSB] = STMPE811_REG_GPIO_ED, 486 [STMPE_IDX_GPEDR_LSB] = STMPE811_REG_GPIO_ED,
487}; 487};
488 488
489static struct stmpe_variant_block stmpe811_blocks[] = { 489static struct stmpe_variant_block stmpe811_blocks[] = {
@@ -561,19 +561,28 @@ static const u8 stmpe1601_regs[] = {
561 [STMPE_IDX_SYS_CTRL] = STMPE1601_REG_SYS_CTRL, 561 [STMPE_IDX_SYS_CTRL] = STMPE1601_REG_SYS_CTRL,
562 [STMPE_IDX_SYS_CTRL2] = STMPE1601_REG_SYS_CTRL2, 562 [STMPE_IDX_SYS_CTRL2] = STMPE1601_REG_SYS_CTRL2,
563 [STMPE_IDX_ICR_LSB] = STMPE1601_REG_ICR_LSB, 563 [STMPE_IDX_ICR_LSB] = STMPE1601_REG_ICR_LSB,
564 [STMPE_IDX_IER_MSB] = STMPE1601_REG_IER_MSB,
564 [STMPE_IDX_IER_LSB] = STMPE1601_REG_IER_LSB, 565 [STMPE_IDX_IER_LSB] = STMPE1601_REG_IER_LSB,
565 [STMPE_IDX_ISR_MSB] = STMPE1601_REG_ISR_MSB, 566 [STMPE_IDX_ISR_MSB] = STMPE1601_REG_ISR_MSB,
566 [STMPE_IDX_GPMR_LSB] = STMPE1601_REG_GPIO_MP_LSB, 567 [STMPE_IDX_GPMR_LSB] = STMPE1601_REG_GPIO_MP_LSB,
568 [STMPE_IDX_GPMR_CSB] = STMPE1601_REG_GPIO_MP_MSB,
567 [STMPE_IDX_GPSR_LSB] = STMPE1601_REG_GPIO_SET_LSB, 569 [STMPE_IDX_GPSR_LSB] = STMPE1601_REG_GPIO_SET_LSB,
570 [STMPE_IDX_GPSR_CSB] = STMPE1601_REG_GPIO_SET_MSB,
568 [STMPE_IDX_GPCR_LSB] = STMPE1601_REG_GPIO_CLR_LSB, 571 [STMPE_IDX_GPCR_LSB] = STMPE1601_REG_GPIO_CLR_LSB,
572 [STMPE_IDX_GPCR_CSB] = STMPE1601_REG_GPIO_CLR_MSB,
569 [STMPE_IDX_GPDR_LSB] = STMPE1601_REG_GPIO_SET_DIR_LSB, 573 [STMPE_IDX_GPDR_LSB] = STMPE1601_REG_GPIO_SET_DIR_LSB,
574 [STMPE_IDX_GPDR_CSB] = STMPE1601_REG_GPIO_SET_DIR_MSB,
575 [STMPE_IDX_GPEDR_LSB] = STMPE1601_REG_GPIO_ED_LSB,
576 [STMPE_IDX_GPEDR_CSB] = STMPE1601_REG_GPIO_ED_MSB,
570 [STMPE_IDX_GPRER_LSB] = STMPE1601_REG_GPIO_RE_LSB, 577 [STMPE_IDX_GPRER_LSB] = STMPE1601_REG_GPIO_RE_LSB,
578 [STMPE_IDX_GPRER_CSB] = STMPE1601_REG_GPIO_RE_MSB,
571 [STMPE_IDX_GPFER_LSB] = STMPE1601_REG_GPIO_FE_LSB, 579 [STMPE_IDX_GPFER_LSB] = STMPE1601_REG_GPIO_FE_LSB,
580 [STMPE_IDX_GPFER_CSB] = STMPE1601_REG_GPIO_FE_MSB,
572 [STMPE_IDX_GPPUR_LSB] = STMPE1601_REG_GPIO_PU_LSB, 581 [STMPE_IDX_GPPUR_LSB] = STMPE1601_REG_GPIO_PU_LSB,
573 [STMPE_IDX_GPAFR_U_MSB] = STMPE1601_REG_GPIO_AF_U_MSB, 582 [STMPE_IDX_GPAFR_U_MSB] = STMPE1601_REG_GPIO_AF_U_MSB,
574 [STMPE_IDX_IEGPIOR_LSB] = STMPE1601_REG_INT_EN_GPIO_MASK_LSB, 583 [STMPE_IDX_IEGPIOR_LSB] = STMPE1601_REG_INT_EN_GPIO_MASK_LSB,
584 [STMPE_IDX_IEGPIOR_CSB] = STMPE1601_REG_INT_EN_GPIO_MASK_MSB,
575 [STMPE_IDX_ISGPIOR_MSB] = STMPE1601_REG_INT_STA_GPIO_MSB, 585 [STMPE_IDX_ISGPIOR_MSB] = STMPE1601_REG_INT_STA_GPIO_MSB,
576 [STMPE_IDX_GPEDR_MSB] = STMPE1601_REG_GPIO_ED_MSB,
577}; 586};
578 587
579static struct stmpe_variant_block stmpe1601_blocks[] = { 588static struct stmpe_variant_block stmpe1601_blocks[] = {
@@ -719,14 +728,28 @@ static const u8 stmpe1801_regs[] = {
719 [STMPE_IDX_IER_LSB] = STMPE1801_REG_INT_EN_MASK_LOW, 728 [STMPE_IDX_IER_LSB] = STMPE1801_REG_INT_EN_MASK_LOW,
720 [STMPE_IDX_ISR_LSB] = STMPE1801_REG_INT_STA_LOW, 729 [STMPE_IDX_ISR_LSB] = STMPE1801_REG_INT_STA_LOW,
721 [STMPE_IDX_GPMR_LSB] = STMPE1801_REG_GPIO_MP_LOW, 730 [STMPE_IDX_GPMR_LSB] = STMPE1801_REG_GPIO_MP_LOW,
731 [STMPE_IDX_GPMR_CSB] = STMPE1801_REG_GPIO_MP_MID,
732 [STMPE_IDX_GPMR_MSB] = STMPE1801_REG_GPIO_MP_HIGH,
722 [STMPE_IDX_GPSR_LSB] = STMPE1801_REG_GPIO_SET_LOW, 733 [STMPE_IDX_GPSR_LSB] = STMPE1801_REG_GPIO_SET_LOW,
734 [STMPE_IDX_GPSR_CSB] = STMPE1801_REG_GPIO_SET_MID,
735 [STMPE_IDX_GPSR_MSB] = STMPE1801_REG_GPIO_SET_HIGH,
723 [STMPE_IDX_GPCR_LSB] = STMPE1801_REG_GPIO_CLR_LOW, 736 [STMPE_IDX_GPCR_LSB] = STMPE1801_REG_GPIO_CLR_LOW,
737 [STMPE_IDX_GPCR_CSB] = STMPE1801_REG_GPIO_CLR_MID,
738 [STMPE_IDX_GPCR_MSB] = STMPE1801_REG_GPIO_CLR_HIGH,
724 [STMPE_IDX_GPDR_LSB] = STMPE1801_REG_GPIO_SET_DIR_LOW, 739 [STMPE_IDX_GPDR_LSB] = STMPE1801_REG_GPIO_SET_DIR_LOW,
740 [STMPE_IDX_GPDR_CSB] = STMPE1801_REG_GPIO_SET_DIR_MID,
741 [STMPE_IDX_GPDR_MSB] = STMPE1801_REG_GPIO_SET_DIR_HIGH,
725 [STMPE_IDX_GPRER_LSB] = STMPE1801_REG_GPIO_RE_LOW, 742 [STMPE_IDX_GPRER_LSB] = STMPE1801_REG_GPIO_RE_LOW,
743 [STMPE_IDX_GPRER_CSB] = STMPE1801_REG_GPIO_RE_MID,
744 [STMPE_IDX_GPRER_MSB] = STMPE1801_REG_GPIO_RE_HIGH,
726 [STMPE_IDX_GPFER_LSB] = STMPE1801_REG_GPIO_FE_LOW, 745 [STMPE_IDX_GPFER_LSB] = STMPE1801_REG_GPIO_FE_LOW,
746 [STMPE_IDX_GPFER_CSB] = STMPE1801_REG_GPIO_FE_MID,
747 [STMPE_IDX_GPFER_MSB] = STMPE1801_REG_GPIO_FE_HIGH,
727 [STMPE_IDX_GPPUR_LSB] = STMPE1801_REG_GPIO_PULL_UP_LOW, 748 [STMPE_IDX_GPPUR_LSB] = STMPE1801_REG_GPIO_PULL_UP_LOW,
728 [STMPE_IDX_IEGPIOR_LSB] = STMPE1801_REG_INT_EN_GPIO_MASK_LOW, 749 [STMPE_IDX_IEGPIOR_LSB] = STMPE1801_REG_INT_EN_GPIO_MASK_LOW,
729 [STMPE_IDX_ISGPIOR_LSB] = STMPE1801_REG_INT_STA_GPIO_LOW, 750 [STMPE_IDX_IEGPIOR_CSB] = STMPE1801_REG_INT_EN_GPIO_MASK_MID,
751 [STMPE_IDX_IEGPIOR_MSB] = STMPE1801_REG_INT_EN_GPIO_MASK_HIGH,
752 [STMPE_IDX_ISGPIOR_MSB] = STMPE1801_REG_INT_STA_GPIO_HIGH,
730}; 753};
731 754
732static struct stmpe_variant_block stmpe1801_blocks[] = { 755static struct stmpe_variant_block stmpe1801_blocks[] = {
@@ -811,19 +834,36 @@ static const u8 stmpe24xx_regs[] = {
811 [STMPE_IDX_SYS_CTRL] = STMPE24XX_REG_SYS_CTRL, 834 [STMPE_IDX_SYS_CTRL] = STMPE24XX_REG_SYS_CTRL,
812 [STMPE_IDX_SYS_CTRL2] = STMPE24XX_REG_SYS_CTRL2, 835 [STMPE_IDX_SYS_CTRL2] = STMPE24XX_REG_SYS_CTRL2,
813 [STMPE_IDX_ICR_LSB] = STMPE24XX_REG_ICR_LSB, 836 [STMPE_IDX_ICR_LSB] = STMPE24XX_REG_ICR_LSB,
837 [STMPE_IDX_IER_MSB] = STMPE24XX_REG_IER_MSB,
814 [STMPE_IDX_IER_LSB] = STMPE24XX_REG_IER_LSB, 838 [STMPE_IDX_IER_LSB] = STMPE24XX_REG_IER_LSB,
815 [STMPE_IDX_ISR_MSB] = STMPE24XX_REG_ISR_MSB, 839 [STMPE_IDX_ISR_MSB] = STMPE24XX_REG_ISR_MSB,
816 [STMPE_IDX_GPMR_LSB] = STMPE24XX_REG_GPMR_LSB, 840 [STMPE_IDX_GPMR_LSB] = STMPE24XX_REG_GPMR_LSB,
841 [STMPE_IDX_GPMR_CSB] = STMPE24XX_REG_GPMR_CSB,
842 [STMPE_IDX_GPMR_MSB] = STMPE24XX_REG_GPMR_MSB,
817 [STMPE_IDX_GPSR_LSB] = STMPE24XX_REG_GPSR_LSB, 843 [STMPE_IDX_GPSR_LSB] = STMPE24XX_REG_GPSR_LSB,
844 [STMPE_IDX_GPSR_CSB] = STMPE24XX_REG_GPSR_CSB,
845 [STMPE_IDX_GPSR_MSB] = STMPE24XX_REG_GPSR_MSB,
818 [STMPE_IDX_GPCR_LSB] = STMPE24XX_REG_GPCR_LSB, 846 [STMPE_IDX_GPCR_LSB] = STMPE24XX_REG_GPCR_LSB,
847 [STMPE_IDX_GPCR_CSB] = STMPE24XX_REG_GPCR_CSB,
848 [STMPE_IDX_GPCR_MSB] = STMPE24XX_REG_GPCR_MSB,
819 [STMPE_IDX_GPDR_LSB] = STMPE24XX_REG_GPDR_LSB, 849 [STMPE_IDX_GPDR_LSB] = STMPE24XX_REG_GPDR_LSB,
850 [STMPE_IDX_GPDR_CSB] = STMPE24XX_REG_GPDR_CSB,
851 [STMPE_IDX_GPDR_MSB] = STMPE24XX_REG_GPDR_MSB,
820 [STMPE_IDX_GPRER_LSB] = STMPE24XX_REG_GPRER_LSB, 852 [STMPE_IDX_GPRER_LSB] = STMPE24XX_REG_GPRER_LSB,
853 [STMPE_IDX_GPRER_CSB] = STMPE24XX_REG_GPRER_CSB,
854 [STMPE_IDX_GPRER_MSB] = STMPE24XX_REG_GPRER_MSB,
821 [STMPE_IDX_GPFER_LSB] = STMPE24XX_REG_GPFER_LSB, 855 [STMPE_IDX_GPFER_LSB] = STMPE24XX_REG_GPFER_LSB,
856 [STMPE_IDX_GPFER_CSB] = STMPE24XX_REG_GPFER_CSB,
857 [STMPE_IDX_GPFER_MSB] = STMPE24XX_REG_GPFER_MSB,
822 [STMPE_IDX_GPPUR_LSB] = STMPE24XX_REG_GPPUR_LSB, 858 [STMPE_IDX_GPPUR_LSB] = STMPE24XX_REG_GPPUR_LSB,
823 [STMPE_IDX_GPPDR_LSB] = STMPE24XX_REG_GPPDR_LSB, 859 [STMPE_IDX_GPPDR_LSB] = STMPE24XX_REG_GPPDR_LSB,
824 [STMPE_IDX_GPAFR_U_MSB] = STMPE24XX_REG_GPAFR_U_MSB, 860 [STMPE_IDX_GPAFR_U_MSB] = STMPE24XX_REG_GPAFR_U_MSB,
825 [STMPE_IDX_IEGPIOR_LSB] = STMPE24XX_REG_IEGPIOR_LSB, 861 [STMPE_IDX_IEGPIOR_LSB] = STMPE24XX_REG_IEGPIOR_LSB,
862 [STMPE_IDX_IEGPIOR_CSB] = STMPE24XX_REG_IEGPIOR_CSB,
863 [STMPE_IDX_IEGPIOR_MSB] = STMPE24XX_REG_IEGPIOR_MSB,
826 [STMPE_IDX_ISGPIOR_MSB] = STMPE24XX_REG_ISGPIOR_MSB, 864 [STMPE_IDX_ISGPIOR_MSB] = STMPE24XX_REG_ISGPIOR_MSB,
865 [STMPE_IDX_GPEDR_LSB] = STMPE24XX_REG_GPEDR_LSB,
866 [STMPE_IDX_GPEDR_CSB] = STMPE24XX_REG_GPEDR_CSB,
827 [STMPE_IDX_GPEDR_MSB] = STMPE24XX_REG_GPEDR_MSB, 867 [STMPE_IDX_GPEDR_MSB] = STMPE24XX_REG_GPEDR_MSB,
828}; 868};
829 869
@@ -998,7 +1038,7 @@ static void stmpe_irq_sync_unlock(struct irq_data *data)
998 continue; 1038 continue;
999 1039
1000 stmpe->oldier[i] = new; 1040 stmpe->oldier[i] = new;
1001 stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_IER_LSB] - i, new); 1041 stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_IER_LSB + i], new);
1002 } 1042 }
1003 1043
1004 mutex_unlock(&stmpe->irq_lock); 1044 mutex_unlock(&stmpe->irq_lock);
diff --git a/drivers/mfd/stmpe.h b/drivers/mfd/stmpe.h
index 4ba112362167..f1273420c8e8 100644
--- a/drivers/mfd/stmpe.h
+++ b/drivers/mfd/stmpe.h
@@ -179,19 +179,32 @@ int stmpe_remove(struct stmpe *stmpe);
179 179
180#define STMPE1601_REG_SYS_CTRL 0x02 180#define STMPE1601_REG_SYS_CTRL 0x02
181#define STMPE1601_REG_SYS_CTRL2 0x03 181#define STMPE1601_REG_SYS_CTRL2 0x03
182#define STMPE1601_REG_ICR_MSB 0x10
182#define STMPE1601_REG_ICR_LSB 0x11 183#define STMPE1601_REG_ICR_LSB 0x11
184#define STMPE1601_REG_IER_MSB 0x12
183#define STMPE1601_REG_IER_LSB 0x13 185#define STMPE1601_REG_IER_LSB 0x13
184#define STMPE1601_REG_ISR_MSB 0x14 186#define STMPE1601_REG_ISR_MSB 0x14
185#define STMPE1601_REG_CHIP_ID 0x80 187#define STMPE1601_REG_ISR_LSB 0x15
188#define STMPE1601_REG_INT_EN_GPIO_MASK_MSB 0x16
186#define STMPE1601_REG_INT_EN_GPIO_MASK_LSB 0x17 189#define STMPE1601_REG_INT_EN_GPIO_MASK_LSB 0x17
187#define STMPE1601_REG_INT_STA_GPIO_MSB 0x18 190#define STMPE1601_REG_INT_STA_GPIO_MSB 0x18
188#define STMPE1601_REG_GPIO_MP_LSB 0x87 191#define STMPE1601_REG_INT_STA_GPIO_LSB 0x19
192#define STMPE1601_REG_CHIP_ID 0x80
193#define STMPE1601_REG_GPIO_SET_MSB 0x82
189#define STMPE1601_REG_GPIO_SET_LSB 0x83 194#define STMPE1601_REG_GPIO_SET_LSB 0x83
195#define STMPE1601_REG_GPIO_CLR_MSB 0x84
190#define STMPE1601_REG_GPIO_CLR_LSB 0x85 196#define STMPE1601_REG_GPIO_CLR_LSB 0x85
197#define STMPE1601_REG_GPIO_MP_MSB 0x86
198#define STMPE1601_REG_GPIO_MP_LSB 0x87
199#define STMPE1601_REG_GPIO_SET_DIR_MSB 0x88
191#define STMPE1601_REG_GPIO_SET_DIR_LSB 0x89 200#define STMPE1601_REG_GPIO_SET_DIR_LSB 0x89
192#define STMPE1601_REG_GPIO_ED_MSB 0x8A 201#define STMPE1601_REG_GPIO_ED_MSB 0x8A
202#define STMPE1601_REG_GPIO_ED_LSB 0x8B
203#define STMPE1601_REG_GPIO_RE_MSB 0x8C
193#define STMPE1601_REG_GPIO_RE_LSB 0x8D 204#define STMPE1601_REG_GPIO_RE_LSB 0x8D
205#define STMPE1601_REG_GPIO_FE_MSB 0x8E
194#define STMPE1601_REG_GPIO_FE_LSB 0x8F 206#define STMPE1601_REG_GPIO_FE_LSB 0x8F
207#define STMPE1601_REG_GPIO_PU_MSB 0x90
195#define STMPE1601_REG_GPIO_PU_LSB 0x91 208#define STMPE1601_REG_GPIO_PU_LSB 0x91
196#define STMPE1601_REG_GPIO_AF_U_MSB 0x92 209#define STMPE1601_REG_GPIO_AF_U_MSB 0x92
197 210
@@ -267,23 +280,47 @@ int stmpe_remove(struct stmpe *stmpe);
267 280
268#define STMPE24XX_REG_SYS_CTRL 0x02 281#define STMPE24XX_REG_SYS_CTRL 0x02
269#define STMPE24XX_REG_SYS_CTRL2 0x03 282#define STMPE24XX_REG_SYS_CTRL2 0x03
283#define STMPE24XX_REG_ICR_MSB 0x10
270#define STMPE24XX_REG_ICR_LSB 0x11 284#define STMPE24XX_REG_ICR_LSB 0x11
285#define STMPE24XX_REG_IER_MSB 0x12
271#define STMPE24XX_REG_IER_LSB 0x13 286#define STMPE24XX_REG_IER_LSB 0x13
272#define STMPE24XX_REG_ISR_MSB 0x14 287#define STMPE24XX_REG_ISR_MSB 0x14
273#define STMPE24XX_REG_CHIP_ID 0x80 288#define STMPE24XX_REG_ISR_LSB 0x15
289#define STMPE24XX_REG_IEGPIOR_MSB 0x16
290#define STMPE24XX_REG_IEGPIOR_CSB 0x17
274#define STMPE24XX_REG_IEGPIOR_LSB 0x18 291#define STMPE24XX_REG_IEGPIOR_LSB 0x18
275#define STMPE24XX_REG_ISGPIOR_MSB 0x19 292#define STMPE24XX_REG_ISGPIOR_MSB 0x19
276#define STMPE24XX_REG_GPMR_LSB 0xA4 293#define STMPE24XX_REG_ISGPIOR_CSB 0x1A
294#define STMPE24XX_REG_ISGPIOR_LSB 0x1B
295#define STMPE24XX_REG_CHIP_ID 0x80
296#define STMPE24XX_REG_GPSR_MSB 0x83
297#define STMPE24XX_REG_GPSR_CSB 0x84
277#define STMPE24XX_REG_GPSR_LSB 0x85 298#define STMPE24XX_REG_GPSR_LSB 0x85
299#define STMPE24XX_REG_GPCR_MSB 0x86
300#define STMPE24XX_REG_GPCR_CSB 0x87
278#define STMPE24XX_REG_GPCR_LSB 0x88 301#define STMPE24XX_REG_GPCR_LSB 0x88
302#define STMPE24XX_REG_GPDR_MSB 0x89
303#define STMPE24XX_REG_GPDR_CSB 0x8A
279#define STMPE24XX_REG_GPDR_LSB 0x8B 304#define STMPE24XX_REG_GPDR_LSB 0x8B
280#define STMPE24XX_REG_GPEDR_MSB 0x8C 305#define STMPE24XX_REG_GPEDR_MSB 0x8C
306#define STMPE24XX_REG_GPEDR_CSB 0x8D
307#define STMPE24XX_REG_GPEDR_LSB 0x8E
308#define STMPE24XX_REG_GPRER_MSB 0x8F
309#define STMPE24XX_REG_GPRER_CSB 0x90
281#define STMPE24XX_REG_GPRER_LSB 0x91 310#define STMPE24XX_REG_GPRER_LSB 0x91
311#define STMPE24XX_REG_GPFER_MSB 0x92
312#define STMPE24XX_REG_GPFER_CSB 0x93
282#define STMPE24XX_REG_GPFER_LSB 0x94 313#define STMPE24XX_REG_GPFER_LSB 0x94
314#define STMPE24XX_REG_GPPUR_MSB 0x95
315#define STMPE24XX_REG_GPPUR_CSB 0x96
283#define STMPE24XX_REG_GPPUR_LSB 0x97 316#define STMPE24XX_REG_GPPUR_LSB 0x97
284#define STMPE24XX_REG_GPPDR_LSB 0x9a 317#define STMPE24XX_REG_GPPDR_MSB 0x98
318#define STMPE24XX_REG_GPPDR_CSB 0x99
319#define STMPE24XX_REG_GPPDR_LSB 0x9A
285#define STMPE24XX_REG_GPAFR_U_MSB 0x9B 320#define STMPE24XX_REG_GPAFR_U_MSB 0x9B
286 321#define STMPE24XX_REG_GPMR_MSB 0xA2
322#define STMPE24XX_REG_GPMR_CSB 0xA3
323#define STMPE24XX_REG_GPMR_LSB 0xA4
287#define STMPE24XX_SYS_CTRL_ENABLE_GPIO (1 << 3) 324#define STMPE24XX_SYS_CTRL_ENABLE_GPIO (1 << 3)
288#define STMPE24XX_SYSCON_ENABLE_PWM (1 << 2) 325#define STMPE24XX_SYSCON_ENABLE_PWM (1 << 2)
289#define STMPE24XX_SYS_CTRL_ENABLE_KPC (1 << 1) 326#define STMPE24XX_SYS_CTRL_ENABLE_KPC (1 << 1)
diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h
index eb8b73bd139f..6b26661a640e 100644
--- a/include/linux/mfd/stmpe.h
+++ b/include/linux/mfd/stmpe.h
@@ -43,20 +43,38 @@ enum {
43 STMPE_IDX_SYS_CTRL2, 43 STMPE_IDX_SYS_CTRL2,
44 STMPE_IDX_ICR_LSB, 44 STMPE_IDX_ICR_LSB,
45 STMPE_IDX_IER_LSB, 45 STMPE_IDX_IER_LSB,
46 STMPE_IDX_IER_MSB,
46 STMPE_IDX_ISR_LSB, 47 STMPE_IDX_ISR_LSB,
47 STMPE_IDX_ISR_MSB, 48 STMPE_IDX_ISR_MSB,
48 STMPE_IDX_GPMR_LSB, 49 STMPE_IDX_GPMR_LSB,
50 STMPE_IDX_GPMR_CSB,
51 STMPE_IDX_GPMR_MSB,
49 STMPE_IDX_GPSR_LSB, 52 STMPE_IDX_GPSR_LSB,
53 STMPE_IDX_GPSR_CSB,
54 STMPE_IDX_GPSR_MSB,
50 STMPE_IDX_GPCR_LSB, 55 STMPE_IDX_GPCR_LSB,
56 STMPE_IDX_GPCR_CSB,
57 STMPE_IDX_GPCR_MSB,
51 STMPE_IDX_GPDR_LSB, 58 STMPE_IDX_GPDR_LSB,
59 STMPE_IDX_GPDR_CSB,
60 STMPE_IDX_GPDR_MSB,
61 STMPE_IDX_GPEDR_LSB,
62 STMPE_IDX_GPEDR_CSB,
52 STMPE_IDX_GPEDR_MSB, 63 STMPE_IDX_GPEDR_MSB,
53 STMPE_IDX_GPRER_LSB, 64 STMPE_IDX_GPRER_LSB,
65 STMPE_IDX_GPRER_CSB,
66 STMPE_IDX_GPRER_MSB,
54 STMPE_IDX_GPFER_LSB, 67 STMPE_IDX_GPFER_LSB,
68 STMPE_IDX_GPFER_CSB,
69 STMPE_IDX_GPFER_MSB,
55 STMPE_IDX_GPPUR_LSB, 70 STMPE_IDX_GPPUR_LSB,
56 STMPE_IDX_GPPDR_LSB, 71 STMPE_IDX_GPPDR_LSB,
57 STMPE_IDX_GPAFR_U_MSB, 72 STMPE_IDX_GPAFR_U_MSB,
58 STMPE_IDX_IEGPIOR_LSB, 73 STMPE_IDX_IEGPIOR_LSB,
74 STMPE_IDX_IEGPIOR_CSB,
75 STMPE_IDX_IEGPIOR_MSB,
59 STMPE_IDX_ISGPIOR_LSB, 76 STMPE_IDX_ISGPIOR_LSB,
77 STMPE_IDX_ISGPIOR_CSB,
60 STMPE_IDX_ISGPIOR_MSB, 78 STMPE_IDX_ISGPIOR_MSB,
61 STMPE_IDX_MAX, 79 STMPE_IDX_MAX,
62}; 80};