mfd: intel_soc_pmic_bxtwc: fix usbc interrupt
PATCH 1/1 mfd: intel_soc_pmic_bxtwc: fix usbc interrupt
The wcove USB Type-C driver is currently being flooded with interrupts that are not targeted to it. The reason for that is because all CHRG first level interrupts are mapped to it. This fixes the issue by introducing separate irq for the usbc device, and mapping only USB Type-C PHY interrupts to it.
Fixes 9c6235c86332 ("mfd: intel_soc_pmic_bxtwc: Add bxt_wcove_usbc device")
Signed-off-by Heikki Krogerus <[email protected]>
--- drivers/mfd/intel_soc_pmic_bxtwc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/mfd/intel_soc_pmic_bxtwc.c +4 -2
@@ -86,6 +86,7 @@ enum bxtwc_irqs_level2 {BXTWC_THRM2_IRQ ,BXTWC_BCU_IRQ ,BXTWC_ADC_IRQ , +BXTWC_USBC_IRQ ,BXTWC_CHGR0_IRQ ,BXTWC_CHGR1_IRQ , BXTWC_GPIO0_IRQ,
@@ -111,7 +112,8 @@ static const struct regmap_irq bxtwc_regmap_irqs_level2[] = {REGMAP_IRQ_REG (BXTWC_THRM2_IRQ ,2 ,0xff ),REGMAP_IRQ_REG (BXTWC_BCU_IRQ ,3 ,0x1f ),REGMAP_IRQ_REG (BXTWC_ADC_IRQ ,4 ,0xff ), -REGMAP_IRQ_REG (BXTWC_CHGR0_IRQ ,5 ,0x3f ), +REGMAP_IRQ_REG (BXTWC_USBC_IRQ ,5 ,BIT (5 )), +REGMAP_IRQ_REG (BXTWC_CHGR0_IRQ ,5 ,0x1f ),REGMAP_IRQ_REG (BXTWC_CHGR1_IRQ ,6 ,0x1f ),REGMAP_IRQ_REG (BXTWC_GPIO0_IRQ ,7 ,0xff ), REGMAP_IRQ_REG(BXTWC_GPIO1_IRQ, 8, 0x3f),
@@ -146,7 +148,7 @@ static struct resource adc_resources[] = { };static struct resource usbc_resources[] = { -DEFINE_RES_IRQ_NAMED (BXTWC_CHGR0_IRQ ,"USBC" ), +DEFINE_RES_IRQ (BXTWC_USBC_IRQ ), };static struct resource charger_resources[] = {
Signature · 1 line
2.9.3
Lee Jones
AppliedQuoted 7 lines · Heikki Krogerus
The wcove USB Type-C driver is currently being flooded with interrupts that are not targeted to it. The reason for that is because all CHRG first level interrupts are mapped to it. This fixes the issue by introducing separate irq for the usbc device, and mapping only USB Type-C PHY interrupts to it.
Quoted 5 lines
Fixes 9c6235c86332 ("mfd: intel_soc_pmic_bxtwc: Add bxt_wcove_usbc device")Signed-off-by Heikki Krogerus <[email protected]>--- drivers/mfd/intel_soc_pmic_bxtwc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
Applied, thanks.
Quoted 31 lines
drivers/mfd/intel_soc_pmic_bxtwc.c +4
-2@@ -86,6 +86,7 @@ enum bxtwc_irqs_level2 {BXTWC_THRM2_IRQ ,BXTWC_BCU_IRQ ,BXTWC_ADC_IRQ , +BXTWC_USBC_IRQ ,BXTWC_CHGR0_IRQ ,BXTWC_CHGR1_IRQ , BXTWC_GPIO0_IRQ,@@ -111,7 +112,8 @@ static const struct regmap_irq bxtwc_regmap_irqs_level2[] = {REGMAP_IRQ_REG (BXTWC_THRM2_IRQ ,2 ,0xff ),REGMAP_IRQ_REG (BXTWC_BCU_IRQ ,3 ,0x1f ),REGMAP_IRQ_REG (BXTWC_ADC_IRQ ,4 ,0xff ), -REGMAP_IRQ_REG (BXTWC_CHGR0_IRQ ,5 ,0x3f ), +REGMAP_IRQ_REG (BXTWC_USBC_IRQ ,5 ,BIT (5 )), +REGMAP_IRQ_REG (BXTWC_CHGR0_IRQ ,5 ,0x1f ),REGMAP_IRQ_REG (BXTWC_CHGR1_IRQ ,6 ,0x1f ),REGMAP_IRQ_REG (BXTWC_GPIO0_IRQ ,7 ,0xff ), REGMAP_IRQ_REG(BXTWC_GPIO1_IRQ, 8, 0x3f),@@ -146,7 +148,7 @@ static struct resource adc_resources[] = { };static struct resource usbc_resources[] = { -DEFINE_RES_IRQ_NAMED (BXTWC_CHGR0_IRQ ,"USBC" ), +DEFINE_RES_IRQ (BXTWC_USBC_IRQ ), };static struct resource charger_resources[] = {
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog