Lines Matching refs:ctrl

42 	struct spmi_controller *ctrl = to_spmi_controller(dev);  in spmi_ctrl_release()  local
43 ida_simple_remove(&ctrl_ida, ctrl->nr); in spmi_ctrl_release()
44 kfree(ctrl); in spmi_ctrl_release()
69 struct spmi_controller *ctrl = sdev->ctrl; in spmi_device_add() local
72 dev_set_name(&sdev->dev, "%d-%02x", ctrl->nr, sdev->usid); in spmi_device_add()
99 spmi_cmd(struct spmi_controller *ctrl, u8 opcode, u8 sid) in spmi_cmd() argument
103 if (!ctrl || !ctrl->cmd || ctrl->dev.type != &spmi_ctrl_type) in spmi_cmd()
106 ret = ctrl->cmd(ctrl, opcode, sid); in spmi_cmd()
111 static inline int spmi_read_cmd(struct spmi_controller *ctrl, u8 opcode, in spmi_read_cmd() argument
116 if (!ctrl || !ctrl->read_cmd || ctrl->dev.type != &spmi_ctrl_type) in spmi_read_cmd()
120 ret = ctrl->read_cmd(ctrl, opcode, sid, addr, buf, len); in spmi_read_cmd()
125 static inline int spmi_write_cmd(struct spmi_controller *ctrl, u8 opcode, in spmi_write_cmd() argument
130 if (!ctrl || !ctrl->write_cmd || ctrl->dev.type != &spmi_ctrl_type) in spmi_write_cmd()
134 ret = ctrl->write_cmd(ctrl, opcode, sid, addr, buf, len); in spmi_write_cmd()
153 return spmi_read_cmd(sdev->ctrl, SPMI_CMD_READ, sdev->usid, addr, in spmi_register_read()
175 return spmi_read_cmd(sdev->ctrl, SPMI_CMD_EXT_READ, sdev->usid, addr, in spmi_ext_register_read()
197 return spmi_read_cmd(sdev->ctrl, SPMI_CMD_EXT_READL, sdev->usid, addr, in spmi_ext_register_readl()
216 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_WRITE, sdev->usid, addr, in spmi_register_write()
230 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_ZERO_WRITE, sdev->usid, 0, in spmi_register_zero_write()
252 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_EXT_WRITE, sdev->usid, addr, in spmi_ext_register_write()
274 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_EXT_WRITEL, sdev->usid, in spmi_ext_register_writel()
289 return spmi_cmd(sdev->ctrl, SPMI_CMD_RESET, sdev->usid); in spmi_command_reset()
301 return spmi_cmd(sdev->ctrl, SPMI_CMD_SLEEP, sdev->usid); in spmi_command_sleep()
314 return spmi_cmd(sdev->ctrl, SPMI_CMD_WAKEUP, sdev->usid); in spmi_command_wakeup()
326 return spmi_cmd(sdev->ctrl, SPMI_CMD_SHUTDOWN, sdev->usid); in spmi_command_shutdown()
381 struct spmi_device *spmi_device_alloc(struct spmi_controller *ctrl) in spmi_device_alloc() argument
389 sdev->ctrl = ctrl; in spmi_device_alloc()
391 sdev->dev.parent = &ctrl->dev; in spmi_device_alloc()
411 struct spmi_controller *ctrl; in spmi_controller_alloc() local
417 ctrl = kzalloc(sizeof(*ctrl) + size, GFP_KERNEL); in spmi_controller_alloc()
418 if (!ctrl) in spmi_controller_alloc()
421 device_initialize(&ctrl->dev); in spmi_controller_alloc()
422 ctrl->dev.type = &spmi_ctrl_type; in spmi_controller_alloc()
423 ctrl->dev.bus = &spmi_bus_type; in spmi_controller_alloc()
424 ctrl->dev.parent = parent; in spmi_controller_alloc()
425 ctrl->dev.of_node = parent->of_node; in spmi_controller_alloc()
426 spmi_controller_set_drvdata(ctrl, &ctrl[1]); in spmi_controller_alloc()
432 spmi_controller_put(ctrl); in spmi_controller_alloc()
436 ctrl->nr = id; in spmi_controller_alloc()
437 dev_set_name(&ctrl->dev, "spmi-%d", id); in spmi_controller_alloc()
439 dev_dbg(&ctrl->dev, "allocated controller 0x%p id %d\n", ctrl, id); in spmi_controller_alloc()
440 return ctrl; in spmi_controller_alloc()
444 static void of_spmi_register_devices(struct spmi_controller *ctrl) in of_spmi_register_devices() argument
449 if (!ctrl->dev.of_node) in of_spmi_register_devices()
452 for_each_available_child_of_node(ctrl->dev.of_node, node) { in of_spmi_register_devices()
456 dev_dbg(&ctrl->dev, "adding child %s\n", node->full_name); in of_spmi_register_devices()
460 dev_err(&ctrl->dev, in of_spmi_register_devices()
467 dev_err(&ctrl->dev, in of_spmi_register_devices()
474 dev_err(&ctrl->dev, in of_spmi_register_devices()
480 dev_dbg(&ctrl->dev, "read usid %02x\n", reg[0]); in of_spmi_register_devices()
482 sdev = spmi_device_alloc(ctrl); in of_spmi_register_devices()
505 int spmi_controller_add(struct spmi_controller *ctrl) in spmi_controller_add() argument
513 ret = device_add(&ctrl->dev); in spmi_controller_add()
518 of_spmi_register_devices(ctrl); in spmi_controller_add()
520 dev_dbg(&ctrl->dev, "spmi-%d registered: dev:%p\n", in spmi_controller_add()
521 ctrl->nr, &ctrl->dev); in spmi_controller_add()
543 void spmi_controller_remove(struct spmi_controller *ctrl) in spmi_controller_remove() argument
547 if (!ctrl) in spmi_controller_remove()
550 dummy = device_for_each_child(&ctrl->dev, NULL, in spmi_controller_remove()
552 device_del(&ctrl->dev); in spmi_controller_remove()