Lines Matching refs:ctrl
152 i2c_ctrl_fini(i2c_ctrl_t *ctrl) in i2c_ctrl_fini() argument
154 if (ctrl == NULL) { in i2c_ctrl_fini()
158 if (ctrl->ctrl_fd >= 0) { in i2c_ctrl_fini()
159 (void) close(ctrl->ctrl_fd); in i2c_ctrl_fini()
162 di_devfs_path_free(ctrl->ctrl_minor); in i2c_ctrl_fini()
163 di_devfs_path_free(ctrl->ctrl_path); in i2c_ctrl_fini()
164 free(ctrl->ctrl_name); in i2c_ctrl_fini()
165 free(ctrl); in i2c_ctrl_fini()
172 i2c_ctrl_t *ctrl; in i2c_ctrl_init() local
201 ctrl = calloc(1, sizeof (i2c_ctrl_t)); in i2c_ctrl_init()
202 if (ctrl == NULL) { in i2c_ctrl_init()
208 ctrl->ctrl_fd = -1; in i2c_ctrl_init()
209 ctrl->ctrl_hdl = hdl; in i2c_ctrl_init()
210 ctrl->ctrl_inst = di_instance(di); in i2c_ctrl_init()
211 ctrl->ctrl_name = strdup(di_bus_addr(di)); in i2c_ctrl_init()
212 if (ctrl->ctrl_name == NULL) { in i2c_ctrl_init()
214 i2c_ctrl_fini(ctrl); in i2c_ctrl_init()
219 ctrl->ctrl_path = di_devfs_path(di); in i2c_ctrl_init()
220 if (ctrl->ctrl_path == NULL) { in i2c_ctrl_init()
222 i2c_ctrl_fini(ctrl); in i2c_ctrl_init()
227 ctrl->ctrl_minor = di_devfs_minor_path(minor); in i2c_ctrl_init()
228 if (ctrl->ctrl_minor == NULL) { in i2c_ctrl_init()
230 i2c_ctrl_fini(ctrl); in i2c_ctrl_init()
235 ctrl->ctrl_fd = openat(hdl->ih_devfd, ctrl->ctrl_minor + 1, O_RDWR); in i2c_ctrl_init()
236 if (ctrl->ctrl_fd < 0) { in i2c_ctrl_init()
239 "device path '/devices%s: %s", ctrl->ctrl_minor, in i2c_ctrl_init()
241 i2c_ctrl_fini(ctrl); in i2c_ctrl_init()
245 if (ioctl(ctrl->ctrl_fd, UI2C_IOCTL_CTRL_NPROPS, &nprops) != 0) { in i2c_ctrl_init()
247 i2c_ctrl_fini(ctrl); in i2c_ctrl_init()
251 ctrl->ctrl_nstd = nprops.ucp_nstd; in i2c_ctrl_init()
252 ctrl->ctrl_npriv = nprops.ucp_npriv; in i2c_ctrl_init()
254 *ctrlp = ctrl; in i2c_ctrl_init()
299 i2c_ctrl_name(i2c_ctrl_t *ctrl) in i2c_ctrl_name() argument
301 return (ctrl->ctrl_name); in i2c_ctrl_name()
305 i2c_ctrl_instance(i2c_ctrl_t *ctrl) in i2c_ctrl_instance() argument
307 return (ctrl->ctrl_inst); in i2c_ctrl_instance()
311 i2c_ctrl_path(i2c_ctrl_t *ctrl) in i2c_ctrl_path() argument
313 return (ctrl->ctrl_path); in i2c_ctrl_path()
317 i2c_ctrl_nprops(i2c_ctrl_t *ctrl) in i2c_ctrl_nprops() argument
324 return (ctrl->ctrl_nstd); in i2c_ctrl_nprops()
412 i2c_prop_info(i2c_ctrl_t *ctrl, i2c_prop_t prop, i2c_prop_info_t **infop) in i2c_prop_info() argument
414 i2c_hdl_t *hdl = ctrl->ctrl_hdl; in i2c_prop_info()
430 if (ioctl(ctrl->ctrl_fd, UI2C_IOCTL_CTRL_PROP_INFO, in i2c_prop_info()
454 i2c_prop_info_by_name(i2c_ctrl_t *ctrl, const char *name, in i2c_prop_info_by_name() argument
457 i2c_hdl_t *hdl = ctrl->ctrl_hdl; in i2c_prop_info_by_name()
470 for (uint32_t i = 0; i < ctrl->ctrl_nstd; i++) { in i2c_prop_info_by_name()
471 if (!i2c_prop_info(ctrl, i, &info)) { in i2c_prop_info_by_name()
488 i2c_prop_get(i2c_ctrl_t *ctrl, i2c_prop_t id, void *buf, size_t *lenp) in i2c_prop_get() argument
490 i2c_hdl_t *hdl = ctrl->ctrl_hdl; in i2c_prop_get()
506 if (ioctl(ctrl->ctrl_fd, UI2C_IOCTL_CTRL_PROP_GET, &prop) != 0) { in i2c_prop_get()
529 i2c_prop_set(i2c_ctrl_t *ctrl, i2c_prop_t id, const void *buf, size_t len) in i2c_prop_set() argument
531 i2c_hdl_t *hdl = ctrl->ctrl_hdl; in i2c_prop_set()
555 if (ioctl(ctrl->ctrl_fd, UI2C_IOCTL_CTRL_PROP_SET, &prop) != 0) { in i2c_prop_set()