|
@@ -333,6 +333,31 @@ static const struct mfd_cell stmpe_keypad_cell = {
|
|
|
.num_resources = ARRAY_SIZE(stmpe_keypad_resources),
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * PWM (1601, 2401, 2403)
|
|
|
+ */
|
|
|
+static struct resource stmpe_pwm_resources[] = {
|
|
|
+ {
|
|
|
+ .name = "PWM0",
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "PWM1",
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "PWM2",
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static const struct mfd_cell stmpe_pwm_cell = {
|
|
|
+ .name = "stmpe-pwm",
|
|
|
+ .of_compatible = "st,stmpe-pwm",
|
|
|
+ .resources = stmpe_pwm_resources,
|
|
|
+ .num_resources = ARRAY_SIZE(stmpe_pwm_resources),
|
|
|
+};
|
|
|
+
|
|
|
/*
|
|
|
* STMPE801
|
|
|
*/
|
|
@@ -537,6 +562,11 @@ static struct stmpe_variant_block stmpe1601_blocks[] = {
|
|
|
.irq = STMPE1601_IRQ_KEYPAD,
|
|
|
.block = STMPE_BLOCK_KEYPAD,
|
|
|
},
|
|
|
+ {
|
|
|
+ .cell = &stmpe_pwm_cell,
|
|
|
+ .irq = STMPE1601_IRQ_PWM0,
|
|
|
+ .block = STMPE_BLOCK_PWM,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
/* supported autosleep timeout delay (in msecs) */
|
|
@@ -771,6 +801,11 @@ static struct stmpe_variant_block stmpe24xx_blocks[] = {
|
|
|
.irq = STMPE24XX_IRQ_KEYPAD,
|
|
|
.block = STMPE_BLOCK_KEYPAD,
|
|
|
},
|
|
|
+ {
|
|
|
+ .cell = &stmpe_pwm_cell,
|
|
|
+ .irq = STMPE24XX_IRQ_PWM0,
|
|
|
+ .block = STMPE_BLOCK_PWM,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static int stmpe24xx_enable(struct stmpe *stmpe, unsigned int blocks,
|