Lines Matching refs:ctrl

40 	struct spmi_controller *ctrl = to_spmi_controller(dev);  in spmi_ctrl_release()  local
41 ida_simple_remove(&ctrl_ida, ctrl->nr); in spmi_ctrl_release()
42 kfree(ctrl); in spmi_ctrl_release()
67 struct spmi_controller *ctrl = sdev->ctrl; in spmi_device_add() local
70 dev_set_name(&sdev->dev, "%d-%02x", ctrl->nr, sdev->usid); in spmi_device_add()
97 spmi_cmd(struct spmi_controller *ctrl, u8 opcode, u8 sid) in spmi_cmd() argument
99 if (!ctrl || !ctrl->cmd || ctrl->dev.type != &spmi_ctrl_type) in spmi_cmd()
102 return ctrl->cmd(ctrl, opcode, sid); in spmi_cmd()
105 static inline int spmi_read_cmd(struct spmi_controller *ctrl, u8 opcode, in spmi_read_cmd() argument
108 if (!ctrl || !ctrl->read_cmd || ctrl->dev.type != &spmi_ctrl_type) in spmi_read_cmd()
111 return ctrl->read_cmd(ctrl, opcode, sid, addr, buf, len); in spmi_read_cmd()
114 static inline int spmi_write_cmd(struct spmi_controller *ctrl, u8 opcode, in spmi_write_cmd() argument
117 if (!ctrl || !ctrl->write_cmd || ctrl->dev.type != &spmi_ctrl_type) in spmi_write_cmd()
120 return ctrl->write_cmd(ctrl, opcode, sid, addr, buf, len); in spmi_write_cmd()
137 return spmi_read_cmd(sdev->ctrl, SPMI_CMD_READ, sdev->usid, addr, in spmi_register_read()
159 return spmi_read_cmd(sdev->ctrl, SPMI_CMD_EXT_READ, sdev->usid, addr, in spmi_ext_register_read()
181 return spmi_read_cmd(sdev->ctrl, SPMI_CMD_EXT_READL, sdev->usid, addr, in spmi_ext_register_readl()
200 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_WRITE, sdev->usid, addr, in spmi_register_write()
214 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_ZERO_WRITE, sdev->usid, 0, in spmi_register_zero_write()
236 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_EXT_WRITE, sdev->usid, addr, in spmi_ext_register_write()
258 return spmi_write_cmd(sdev->ctrl, SPMI_CMD_EXT_WRITEL, sdev->usid, in spmi_ext_register_writel()
273 return spmi_cmd(sdev->ctrl, SPMI_CMD_RESET, sdev->usid); in spmi_command_reset()
285 return spmi_cmd(sdev->ctrl, SPMI_CMD_SLEEP, sdev->usid); in spmi_command_sleep()
298 return spmi_cmd(sdev->ctrl, SPMI_CMD_WAKEUP, sdev->usid); in spmi_command_wakeup()
310 return spmi_cmd(sdev->ctrl, SPMI_CMD_SHUTDOWN, sdev->usid); in spmi_command_shutdown()
365 struct spmi_device *spmi_device_alloc(struct spmi_controller *ctrl) in spmi_device_alloc() argument
373 sdev->ctrl = ctrl; in spmi_device_alloc()
375 sdev->dev.parent = &ctrl->dev; in spmi_device_alloc()
395 struct spmi_controller *ctrl; in spmi_controller_alloc() local
401 ctrl = kzalloc(sizeof(*ctrl) + size, GFP_KERNEL); in spmi_controller_alloc()
402 if (!ctrl) in spmi_controller_alloc()
405 device_initialize(&ctrl->dev); in spmi_controller_alloc()
406 ctrl->dev.type = &spmi_ctrl_type; in spmi_controller_alloc()
407 ctrl->dev.bus = &spmi_bus_type; in spmi_controller_alloc()
408 ctrl->dev.parent = parent; in spmi_controller_alloc()
409 ctrl->dev.of_node = parent->of_node; in spmi_controller_alloc()
410 spmi_controller_set_drvdata(ctrl, &ctrl[1]); in spmi_controller_alloc()
416 spmi_controller_put(ctrl); in spmi_controller_alloc()
420 ctrl->nr = id; in spmi_controller_alloc()
421 dev_set_name(&ctrl->dev, "spmi-%d", id); in spmi_controller_alloc()
423 dev_dbg(&ctrl->dev, "allocated controller 0x%p id %d\n", ctrl, id); in spmi_controller_alloc()
424 return ctrl; in spmi_controller_alloc()
428 static void of_spmi_register_devices(struct spmi_controller *ctrl) in of_spmi_register_devices() argument
433 if (!ctrl->dev.of_node) in of_spmi_register_devices()
436 for_each_available_child_of_node(ctrl->dev.of_node, node) { in of_spmi_register_devices()
440 dev_dbg(&ctrl->dev, "adding child %s\n", node->full_name); in of_spmi_register_devices()
444 dev_err(&ctrl->dev, in of_spmi_register_devices()
451 dev_err(&ctrl->dev, in of_spmi_register_devices()
458 dev_err(&ctrl->dev, in of_spmi_register_devices()
464 dev_dbg(&ctrl->dev, "read usid %02x\n", reg[0]); in of_spmi_register_devices()
466 sdev = spmi_device_alloc(ctrl); in of_spmi_register_devices()
489 int spmi_controller_add(struct spmi_controller *ctrl) in spmi_controller_add() argument
497 ret = device_add(&ctrl->dev); in spmi_controller_add()
502 of_spmi_register_devices(ctrl); in spmi_controller_add()
504 dev_dbg(&ctrl->dev, "spmi-%d registered: dev:%p\n", in spmi_controller_add()
505 ctrl->nr, &ctrl->dev); in spmi_controller_add()
527 void spmi_controller_remove(struct spmi_controller *ctrl) in spmi_controller_remove() argument
531 if (!ctrl) in spmi_controller_remove()
534 dummy = device_for_each_child(&ctrl->dev, NULL, in spmi_controller_remove()
536 device_del(&ctrl->dev); in spmi_controller_remove()