@@ -18,6 +18,9 @@ static const struct regmap_range fomcu_writeable_reg_ranges[] = {
1818 regmap_reg_range (FOMCU_REG_LEDS_BR_LINK ,
1919 FOMCU_REG_LEDS_COLOR_LINK4 ),
2020 regmap_reg_range (FOMCU_REG_HAPTIC , FOMCU_REG_HAPTIC ),
21+ regmap_reg_range (FOMCU_REG_UCSI_CONTROL ,
22+ FOMCU_REG_UCSI_CONTROL + 6 ),
23+ regmap_reg_range (FOMCU_REG_UCSI_MESSAGE_OUT , FOMCU_REG_MAX ),
2124};
2225
2326static const struct regmap_access_table fomcu_writeable_regs = {
@@ -68,12 +71,15 @@ static const struct regmap_irq fomcu_irqs[] = {
6871 FOMCU_IRQ_REG (INPUT , BTN ),
6972 FOMCU_IRQ_REG (INPUT , TOUCH ),
7073 FOMCU_IRQ_REG (INPUT , HEADSET ),
74+ FOMCU_IRQ_REG (UCSI , EVENT ),
7175};
7276
7377static unsigned int irq_input_offsets [] = { FOMCU_INTOFF_INPUT };
78+ static unsigned int irq_ucsi_offsets [] = { FOMCU_INTOFF_UCSI };
7479
7580static const struct regmap_irq_sub_irq_map fomcu_sub_irqs [] = {
7681 REGMAP_IRQ_MAIN_REG_OFFSET (irq_input_offsets ),
82+ REGMAP_IRQ_MAIN_REG_OFFSET (irq_ucsi_offsets ),
7783};
7884
7985static const struct regmap_irq_chip fomcu_irq_chip = {
@@ -94,14 +100,19 @@ static const struct resource fo_input_irqs[] = {
94100 DEFINE_RES_IRQ_NAMED (FOMCU_INT_INPUT_HEADSET , "flipper-one-input-headset" ),
95101};
96102
103+ static const struct resource fo_ucsi_irqs [] = {
104+ DEFINE_RES_IRQ_NAMED (FOMCU_INT_UCSI_EVENT , "flipper-one-ucsi" ),
105+ };
106+
97107static const struct mfd_cell cells [] = {
98108 MFD_CELL_NAME ("flipper-one-haptic" ),
99109 MFD_CELL_RES ("flipper-one-input" , fo_input_irqs ),
100110 MFD_CELL_NAME ("flipper-one-leds" ),
101111 MFD_CELL_NAME ("flipper-one-power" ),
102112 MFD_CELL_NAME ("flipper-one-regulators" ),
103113 MFD_CELL_NAME ("flipper-one-thermal" ),
104- MFD_CELL_NAME ("flipper-one-typec" ),
114+ MFD_CELL_OF ("flipper-one-typec" , fo_ucsi_irqs , NULL , 0 , 0 ,
115+ "flipper,one-typec" ),
105116};
106117
107118static int fomcu_probe (struct i2c_client * client )
0 commit comments