Lines Matching refs:cg

61 	struct sy6982c_charger *cg = container_of(work,  in sy6982c_cg_bc_evt_worker()  local
63 struct extcon_dev *edev = cg->cable_edev; in sy6982c_cg_bc_evt_worker()
80 dev_info(cg->dev, "receive type-c notifier event: %s...\n", in sy6982c_cg_bc_evt_worker()
82 cg->usb_charger = charger; in sy6982c_cg_bc_evt_worker()
90 struct sy6982c_charger *cg = in sy6982c_cg_charger_evt_notifier() local
93 queue_delayed_work(cg->usb_charger_wq, &cg->usb_work, in sy6982c_cg_charger_evt_notifier()
101 struct sy6982c_charger *cg = container_of(work, in sy6982c_cg_discnt_evt_worker() local
104 if (extcon_get_cable_state_(cg->cable_edev, EXTCON_USB) == 0) { in sy6982c_cg_discnt_evt_worker()
105 dev_info(cg->dev, "receive type-c notifier event: DISCNT...\n"); in sy6982c_cg_discnt_evt_worker()
106 cg->usb_charger = USB_TYPE_NONE_CHARGER; in sy6982c_cg_discnt_evt_worker()
113 struct sy6982c_charger *cg = in sy6982c_cg_discnt_evt_notfier() local
116 queue_delayed_work(cg->usb_charger_wq, &cg->discnt_work, in sy6982c_cg_discnt_evt_notfier()
122 static int sy6982c_cg_init_usb(struct sy6982c_charger *cg) in sy6982c_cg_init_usb() argument
124 struct device *dev = cg->dev; in sy6982c_cg_init_usb()
128 if (!cg->extcon) in sy6982c_cg_init_usb()
138 cg->usb_charger_wq = alloc_ordered_workqueue("%s", in sy6982c_cg_init_usb()
141 cg->usb_charger = USB_TYPE_NONE_CHARGER; in sy6982c_cg_init_usb()
144 INIT_DELAYED_WORK(&cg->usb_work, sy6982c_cg_bc_evt_worker); in sy6982c_cg_init_usb()
145 cg->cable_cg_nb.notifier_call = sy6982c_cg_charger_evt_notifier; in sy6982c_cg_init_usb()
147 &cg->cable_cg_nb); in sy6982c_cg_init_usb()
154 &cg->cable_cg_nb); in sy6982c_cg_init_usb()
161 &cg->cable_cg_nb); in sy6982c_cg_init_usb()
168 INIT_DELAYED_WORK(&cg->discnt_work, sy6982c_cg_discnt_evt_worker); in sy6982c_cg_init_usb()
169 cg->cable_discnt_nb.notifier_call = sy6982c_cg_discnt_evt_notfier; in sy6982c_cg_init_usb()
171 &cg->cable_discnt_nb); in sy6982c_cg_init_usb()
177 cg->cable_edev = edev; in sy6982c_cg_init_usb()
178 schedule_delayed_work(&cg->usb_work, 0); in sy6982c_cg_init_usb()
179 dev_info(cg->dev, "register extcon evt notifier\n"); in sy6982c_cg_init_usb()
184 destroy_workqueue(cg->usb_charger_wq); in sy6982c_cg_init_usb()
197 struct sy6982c_charger *cg = power_supply_get_drvdata(psy); in sy6982c_cg_usb_get_property() local
201 if (cg->usb_charger != USB_TYPE_UNKNOWN_CHARGER && in sy6982c_cg_usb_get_property()
202 cg->usb_charger != USB_TYPE_NONE_CHARGER) in sy6982c_cg_usb_get_property()
204 if (cg->dc_charger != DC_TYPE_NONE_CHARGER) in sy6982c_cg_usb_get_property()
210 dev_dbg(cg->dev, "report online: %d\n", val->intval); in sy6982c_cg_usb_get_property()
218 dev_dbg(cg->dev, "report prop: %d\n", val->intval); in sy6982c_cg_usb_get_property()
236 static int sy6982c_cg_init_power_supply(struct sy6982c_charger *cg) in sy6982c_cg_init_power_supply() argument
238 struct power_supply_config psy_cfg = { .drv_data = cg, }; in sy6982c_cg_init_power_supply()
240 cg->usb_psy = devm_power_supply_register(cg->dev, &sy6982c_usb_desc, in sy6982c_cg_init_power_supply()
242 if (IS_ERR(cg->usb_psy)) { in sy6982c_cg_init_power_supply()
243 dev_err(cg->dev, "register usb power supply fail\n"); in sy6982c_cg_init_power_supply()
244 return PTR_ERR(cg->usb_psy); in sy6982c_cg_init_power_supply()
251 static int sy6982c_charger_parse_dt(struct sy6982c_charger *cg) in sy6982c_charger_parse_dt() argument
253 struct device *dev = cg->dev; in sy6982c_charger_parse_dt()
255 cg->dc_det_pin = devm_gpiod_get_optional(dev, "dc-det", in sy6982c_charger_parse_dt()
257 if (!IS_ERR_OR_NULL(cg->dc_det_pin)) { in sy6982c_charger_parse_dt()
258 cg->support_dc_det = true; in sy6982c_charger_parse_dt()
261 cg->support_dc_det = false; in sy6982c_charger_parse_dt()
267 static int sy6982c_charger_parse_dt(struct sy6982c_charger *cg) in sy6982c_charger_parse_dt() argument
273 static enum charger_t sy6982c_charger_get_dc_state(struct sy6982c_charger *cg) in sy6982c_charger_get_dc_state() argument
275 return (gpiod_get_value(cg->dc_det_pin)) ? in sy6982c_charger_get_dc_state()
282 struct sy6982c_charger *cg = container_of(work, in sy6982c_charger_dc_det_worker() local
285 charger = sy6982c_charger_get_dc_state(cg); in sy6982c_charger_dc_det_worker()
287 cg->dc_charger = charger; in sy6982c_charger_dc_det_worker()
289 cg->dc_charger = DC_TYPE_NONE_CHARGER; in sy6982c_charger_dc_det_worker()
296 struct sy6982c_charger *cg = (struct sy6982c_charger *)charger; in sy6982c_charger_dc_det_isr() local
298 queue_delayed_work(cg->dc_charger_wq, &cg->dc_work, in sy6982c_charger_dc_det_isr()
304 static int sy6982c_charger_init_dc(struct sy6982c_charger *cg) in sy6982c_charger_init_dc() argument
310 if (!cg->support_dc_det) in sy6982c_charger_init_dc()
313 cg->dc_charger_wq = alloc_ordered_workqueue("%s", in sy6982c_charger_init_dc()
316 if (!cg->dc_charger_wq) in sy6982c_charger_init_dc()
319 INIT_DELAYED_WORK(&cg->dc_work, sy6982c_charger_dc_det_worker); in sy6982c_charger_init_dc()
320 cg->dc_charger = DC_TYPE_NONE_CHARGER; in sy6982c_charger_init_dc()
322 if (gpiod_get_value(cg->dc_det_pin)) in sy6982c_charger_init_dc()
323 cg->dc_charger = DC_TYPE_DC_CHARGER; in sy6982c_charger_init_dc()
325 cg->dc_charger = DC_TYPE_NONE_CHARGER; in sy6982c_charger_init_dc()
328 dc_det_irq = gpiod_to_irq(cg->dc_det_pin); in sy6982c_charger_init_dc()
329 ret = devm_request_irq(cg->dev, dc_det_irq, sy6982c_charger_dc_det_isr, in sy6982c_charger_init_dc()
330 irq_flags, "sy6982c_dc_det", cg); in sy6982c_charger_init_dc()
332 dev_err(cg->dev, "sy6982c_dc_det_irq request failed!\n"); in sy6982c_charger_init_dc()
343 struct sy6982c_charger *cg; in sy6982c_charger_probe() local
346 cg = devm_kzalloc(&pdev->dev, sizeof(*cg), GFP_KERNEL); in sy6982c_charger_probe()
347 if (!cg) in sy6982c_charger_probe()
350 cg->dev = &pdev->dev; in sy6982c_charger_probe()
351 sy6982c_charger_parse_dt(cg); in sy6982c_charger_probe()
352 sy6982c_charger_init_dc(cg); in sy6982c_charger_probe()
353 cg->extcon = device_property_read_bool(cg->dev, "extcon"); in sy6982c_charger_probe()
354 ret = sy6982c_cg_init_usb(cg); in sy6982c_charger_probe()
356 dev_err(cg->dev, "init usb failed!\n"); in sy6982c_charger_probe()
360 ret = sy6982c_cg_init_power_supply(cg); in sy6982c_charger_probe()
362 dev_err(cg->dev, "init power supply fail!\n"); in sy6982c_charger_probe()
366 dev_info(cg->dev, "driver registered\n"); in sy6982c_charger_probe()
373 struct sy6982c_charger *cg = platform_get_drvdata(pdev); in sy6982c_charger_remove() local
375 if (cg->usb_charger_wq) in sy6982c_charger_remove()
376 destroy_workqueue(cg->usb_charger_wq); in sy6982c_charger_remove()