Lines Matching +full:parent +full:- +full:child

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
69 mtx_init(&sc->lock, device_get_nameunit(dev), "smbus", MTX_DEF);
86 mtx_destroy(&sc->lock);
100 device_t child;
102 child = device_add_child_ordered(dev, order, name, unit);
103 if (child == NULL)
104 return (child);
107 device_delete_child(dev, child);
110 device_set_ivars(child, devi);
111 return (child);
115 smbus_child_deleted(device_t dev, device_t child)
117 free(device_get_ivars(child), M_DEVBUF);
124 device_t child;
134 child = BUS_ADD_CHILD(bus, SMBUS_ORDER_HINTED, dname, dunit);
135 if (child == NULL)
137 devi = device_get_ivars(child);
138 devi->addr = addr;
142 smbus_child_location(device_t parent, device_t child, struct sbuf *sb)
146 devi = device_get_ivars(child);
147 if (devi->addr != 0)
148 sbuf_printf(sb, "addr=0x%x", devi->addr);
153 smbus_print_child(device_t parent, device_t child)
158 devi = device_get_ivars(child);
159 retval = bus_print_child_header(parent, child);
160 if (devi->addr != 0)
161 retval += printf(" at addr 0x%x", devi->addr);
162 retval += bus_print_child_footer(parent, child);
168 smbus_read_ivar(device_t parent, device_t child, int which, uintptr_t *result)
172 devi = device_get_ivars(child);
175 if (devi->addr != 0)
176 *result = devi->addr;
178 *result = -1;
187 smbus_write_ivar(device_t parent, device_t child, int which, uintptr_t value)
191 devi = device_get_ivars(child);
195 if (devi->addr != 0)
197 devi->addr = value;
206 smbus_probe_nomatch(device_t bus, device_t child)
208 struct smbus_ivar *devi = device_get_ivars(child);
211 * Ignore (self-identified) devices without a slave address set.
214 if (devi->addr != 0)
216 devi->addr);