Lines Matching refs:data

67 static int mrfld_extcon_clear(struct mrfld_extcon_data *data, unsigned int reg,
70 return regmap_update_bits(data->regmap, reg, mask, 0x00);
73 static int mrfld_extcon_set(struct mrfld_extcon_data *data, unsigned int reg,
76 return regmap_update_bits(data->regmap, reg, mask, 0xff);
79 static int mrfld_extcon_sw_control(struct mrfld_extcon_data *data, bool enable)
82 struct device *dev = data->dev;
86 ret = mrfld_extcon_set(data, BCOVE_CHGRCTRL0, mask);
88 ret = mrfld_extcon_clear(data, BCOVE_CHGRCTRL0, mask);
94 static int mrfld_extcon_get_id(struct mrfld_extcon_data *data)
96 struct regmap *regmap = data->regmap;
123 switch ('A' + BCOVE_MAJOR(data->id)) {
134 static int mrfld_extcon_role_detect(struct mrfld_extcon_data *data)
140 ret = mrfld_extcon_get_id(data);
147 extcon_set_state_sync(data->edev, EXTCON_USB_HOST, usb_host);
152 static int mrfld_extcon_cable_detect(struct mrfld_extcon_data *data)
154 struct regmap *regmap = data->regmap;
167 change = status ^ data->status;
172 ret = mrfld_extcon_role_detect(data);
177 data->status = status;
184 struct mrfld_extcon_data *data = dev_id;
187 ret = mrfld_extcon_cable_detect(data);
189 mrfld_extcon_clear(data, BCOVE_MIRQLVL1, BCOVE_LVL1_CHGR);
199 struct mrfld_extcon_data *data;
208 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
209 if (!data)
212 data->dev = dev;
213 data->regmap = regmap;
215 data->edev = devm_extcon_dev_allocate(dev, mrfld_extcon_cable);
216 if (IS_ERR(data->edev))
219 ret = devm_extcon_dev_register(dev, data->edev);
227 data);
239 data->id = id;
241 ret = mrfld_extcon_sw_control(data, true);
246 mrfld_extcon_role_detect(data);
254 data->status = status;
256 mrfld_extcon_clear(data, BCOVE_MIRQLVL1, BCOVE_LVL1_CHGR);
257 mrfld_extcon_clear(data, BCOVE_MCHGRIRQ1, BCOVE_CHGRIRQ_ALL);
259 mrfld_extcon_set(data, BCOVE_USBIDCTRL, BCOVE_USBIDCTRL_ALL);
261 platform_set_drvdata(pdev, data);
268 struct mrfld_extcon_data *data = platform_get_drvdata(pdev);
270 mrfld_extcon_sw_control(data, false);