opnsense-src/sys/dev/ow
John Baldwin b196276c20 bus_generic_detach: Delete children after detaching them
This provides better semantics as a standalone DEVMETHOD for
device_attach as bus drivers should remove child devices they created
as part of detach cleanup.  The implementation calls
bus_detach_children() first to permit child devices an opportunity to
veto the detach operation.  If that succeeds, device_delete_children()
is used to delete the child devices.

This requires fixing various drivers that were deleting devices
explicitly (via a device_t pointer cached in the softc) after calling
bus_generic_detach to stop doing that and just rely on
bus_generic_detach to remove child devices.

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D47959
2025-01-02 13:21:30 -05:00
..
ow.c bus_generic_detach: Delete children after detaching them 2025-01-02 13:21:30 -05:00
ow.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ow_temp.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
owc_gpiobus.c bus_delayed_attach_children: Switch return type to void 2024-12-06 17:27:14 -05:00
owll.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
owll_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
own.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
own_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
README.txt sys: Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:17 -06:00

Quick Design Document for 1-wire bus

In new bus terms, 1-wire devices are attached to 1-wire buses (ow)
which are attached to a one wire bridge (owc).

The implementation follows the terminology used in the Maxim AN927
Application note which defines the 1-wire bus as implemented for the
iButton product. This is considered to be the canonical definition of
the 1-wire bus. This means that the 1-wire bridge will implement the
owll(9) interface. ow is one wire. ll is for Link Level to mirror the ISO
stack terminology used by AN927. The 1-wire bus is implemented in the ow(4)
device, which implements the own(9) interface (n for network, the layer
described in the AN927). The presentation layer and above is the
responsibility of the client device drivers to implement.

Client drivers may only call the own(9) interface. The ow(4) driver
calls the owll(9) interface and implements the own(9).