Home | History | Annotate | only in /src/sys/arch/hpcarm/dev
History log of /src/sys/arch/hpcarm/dev
RevisionDateAuthorComments
 1.10 04-Mar-2006  peter Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.9 16-Dec-2005  christos branches: 1.9.4; 1.9.6;
PR/32312: Arnaud Degroote: apm on hpcarm ( NetBSD-current ) doesn"t compile
 1.8 11-Dec-2005  christos merge ktrace-lwp.
 1.7 23-Oct-2005  peter - Use ANSI function decls.
- Add static, KNF.
- Print a newline in the attach routine for pretty dmesg output.
 1.6 20-Jan-2003  simonb branches: 1.6.2; 1.6.18; 1.6.20;
The Double-Semi-Colon Police.
 1.5 23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.4 07-Oct-2002  jdolecek branches: 1.4.2; 1.4.4;
g/c empty apmpoll(), use nopoll() instead
 1.3 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.2 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.1 16-Sep-2002  manu Initial APM support (enough to get battery level)
 1.4.4.3 11-Nov-2002  nathanw Catch up to -current
 1.4.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.4.4.1 07-Oct-2002  nathanw file apm.c was added on branch nathanw_sa on 2002-10-18 02:36:59 +0000
 1.4.2.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.4.2.1 07-Oct-2002  jdolecek file apm.c was added on branch kqueue on 2002-10-10 18:32:50 +0000
 1.6.20.1 26-Oct-2005  yamt sync with head
 1.6.18.1 21-Jun-2006  yamt sync with head.
 1.6.2.1 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.9.6.1 22-Apr-2006  simonb Sync with head.
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.4 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.3 24-Apr-2021  thorpej branches: 1.3.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.2 20-Nov-2011  kiyohara branches: 1.2.64;
Remove a white-space and a Tab.
 1.1 06-Aug-2011  kiyohara branches: 1.1.2;
Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.2.64.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.3.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 02-Aug-2001  ichiro branches: 1.2.2; 1.2.8; 1.2.126; 1.2.128; 1.2.130;
implement rx/tx protocol routine of atmel microcontroller.
 1.1 31-Jul-2001  ichiro iPAQ uses Atmel microcontroller to service a few peripheral devices
(Touch panel, Battery status, button events, and others status)
 1.2.130.1 16-May-2008  yamt sync with head.
 1.2.128.1 18-May-2008  yamt sync with head.
 1.2.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.8.2 02-Aug-2001  ichiro implement rx/tx protocol routine of atmel microcontroller.
 1.2.8.1 02-Aug-2001  ichiro file ipaq_atmel.h was added on branch nathanw_sa on 2001-08-02 18:51:02 +0000
 1.2.2.2 03-Aug-2001  lukem update to -current
 1.2.2.1 02-Aug-2001  lukem file ipaq_atmel.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.19 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.18 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.17 24-Apr-2021  thorpej branches: 1.17.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.16 19-Jul-2011  dyoung branches: 1.16.68;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.15 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.14 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.13 28-Sep-2006  rjs branches: 1.13.52; 1.13.54; 1.13.56;
ANSIfy and fix missed proc -> lwp conversion.
 1.12 26-Sep-2006  rjs Make it compile with gcc4.
 1.11 25-Mar-2006  peter branches: 1.11.8; 1.11.10;
The sa11x0 include files live in arm/sa11x0 these days.
Use an actual buffer to store the sample, not just a pointer.

From Arnaud Lacombe on port-hpcarm.
 1.10 04-Mar-2006  peter branches: 1.10.2; 1.10.4; 1.10.6;
s/u_intN_t/uintN_t/
 1.9 11-Dec-2005  christos branches: 1.9.4; 1.9.6;
merge ktrace-lwp.
 1.8 26-Aug-2005  drochner s/locdesc_t/int/g
 1.7 30-Jun-2005  drochner branches: 1.7.2;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 02-Oct-2002  thorpej branches: 1.5.6;
Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.2 02-Aug-2001  ichiro branches: 1.2.2; 1.2.8;
implement rx/tx protocol routine of atmel microcontroller.
 1.1 01-Aug-2001  ichiro implement a atmelgpio.c
this is initial version, only frame.
 1.2.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.2.8.1 02-Aug-2001  nathanw file ipaq_atmelgpio.c was added on branch nathanw_sa on 2002-10-18 02:36:59 +0000
 1.2.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.2 03-Aug-2001  lukem update to -current
 1.2.2.1 02-Aug-2001  lukem file ipaq_atmelgpio.c was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.5.6.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.7.2.2 30-Dec-2006  yamt sync with head.
 1.7.2.1 21-Jun-2006  yamt sync with head.
 1.9.6.1 22-Apr-2006  simonb Sync with head.
 1.9.4.1 09-Sep-2006  rpaulo sync with head
 1.10.6.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.10.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.10.2.1 01-Apr-2006  yamt sync with head.
 1.11.10.1 22-Oct-2006  yamt sync with head
 1.11.8.1 18-Nov-2006  ad Sync with head.
 1.13.56.2 20-Jun-2009  yamt sync with head
 1.13.56.1 16-May-2008  yamt sync with head.
 1.13.54.1 18-May-2008  yamt sync with head.
 1.13.52.1 02-Jun-2008  mjf Sync with HEAD.
 1.16.68.6 05-Apr-2021  thorpej Treat config_probe() as if it were a boolean function; don't compare
return value > 0... except for the odd balls, which are now really easy
to spot.
 1.16.68.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.16.68.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.16.68.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.16.68.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.16.68.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.17.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.4 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 04-Mar-2006  peter branches: 1.2.68; 1.2.70; 1.2.72;
s/u_intN_t/uintN_t/
 1.1 02-Aug-2001  ichiro branches: 1.1.2; 1.1.8; 1.1.40; 1.1.54; 1.1.56;
implement rx/tx protocol routine of atmel microcontroller.
 1.1.56.1 22-Apr-2006  simonb Sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.1 21-Jun-2006  yamt sync with head.
 1.1.8.2 02-Aug-2001  ichiro implement rx/tx protocol routine of atmel microcontroller.
 1.1.8.1 02-Aug-2001  ichiro file ipaq_atmelvar.h was added on branch nathanw_sa on 2001-08-02 18:51:01 +0000
 1.1.2.2 03-Aug-2001  lukem update to -current
 1.1.2.1 02-Aug-2001  lukem file ipaq_atmelvar.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.2.72.2 20-Jun-2009  yamt sync with head
 1.2.72.1 16-May-2008  yamt sync with head.
 1.2.70.1 18-May-2008  yamt sync with head.
 1.2.68.1 02-Jun-2008  mjf Sync with HEAD.
 1.8 07-Sep-2025  andvar Fix various typos, mainly in comments.
 1.7 18-May-2022  andvar s/yhe/the/
 1.6 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5 15-Jul-2001  ichiro branches: 1.5.2; 1.5.8; 1.5.126; 1.5.128; 1.5.130;
initial commit UDA1341 CODEC
 1.4 15-Jul-2001  ichiro add definition I/Opins of UDA1341
 1.3 15-Jul-2001  ichiro enable extended gpio operation
 1.2 13-Jul-2001  ichiro The definiton which overlapped was erased.
 1.1 10-Jul-2001  ichiro Separation of SA-11x0 GPIOs and iPAQ specific GPIOs.
 1.5.130.1 16-May-2008  yamt sync with head.
 1.5.128.1 18-May-2008  yamt sync with head.
 1.5.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.8.2 15-Jul-2001  ichiro initial commit UDA1341 CODEC
 1.5.8.1 15-Jul-2001  ichiro file ipaq_gpioreg.h was added on branch nathanw_sa on 2001-07-15 20:19:32 +0000
 1.5.2.2 03-Aug-2001  lukem update to -current
 1.5.2.1 15-Jul-2001  lukem file ipaq_gpioreg.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.22 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.21 24-Apr-2021  thorpej branches: 1.21.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.20 25-Oct-2014  skrll branches: 1.20.34;
Remove katelib.h and references to it.

{Read,Write}{Word,Byte} macros are provided in the files that still use
them. Someone(tm) should convert them to bus_space(9)
 1.19 19-Jul-2011  dyoung branches: 1.19.12;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.18 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.17 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.16 04-Mar-2007  christos branches: 1.16.40; 1.16.42; 1.16.44;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.15 28-Sep-2006  rjs branches: 1.15.4;
ANSIfy and fix missed proc -> lwp conversion.
 1.14 25-Mar-2006  peter branches: 1.14.8; 1.14.10;
The sa11x0 include files live in arm/sa11x0 these days.
 1.13 11-Dec-2005  christos branches: 1.13.4; 1.13.6; 1.13.8; 1.13.10; 1.13.12;
merge ktrace-lwp.
 1.12 12-Dec-2004  abs branches: 1.12.10;
Fix comments regarding configration bounaries
 1.11 15-Jul-2003  lukem __KERNEL_RCSID()
 1.10 02-Oct-2002  thorpej branches: 1.10.6;
Use CFATTACH_DECL().
 1.9 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.8 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.7 17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.6 27-Nov-2001  thorpej Use <machine/intr.h> rather than <machine/irqhandler.h>
 1.5 23-Nov-2001  thorpej Use <arm/cpufunc.h>, not <machine/cpufunc.h>.
 1.4 22-Nov-2001  thorpej Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
 1.3 22-Jul-2001  takemura branches: 1.3.2; 1.3.8;
You must set 'HPCFB_SWAP_*' if bytes are stored in reverse order, i.e.
little endian like order, however, usage of 'HPCFB_SWAP_*' was widely
misunderstood because it reminded you of 'RI_BSWAP' in raster operation.
Please note that 'RI_BSWAP' indicate that frame buffer byte order is different
from natural order of system while 'HPCFB_REVORDER_*' is independent of
system byte order.
 1.2 15-Jul-2001  ichiro enable extended gpio operation
 1.1 10-Jul-2001  ichiro moved sa11x0_lcd* to dev/ipaq_lcd*
 1.3.8.4 18-Oct-2002  nathanw Catch up to -current.
 1.3.8.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.3.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.3.8.1 22-Jul-2001  nathanw file ipaq_lcd.c was added on branch nathanw_sa on 2002-01-08 00:24:51 +0000
 1.3.2.5 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.2 03-Aug-2001  lukem update to -current
 1.3.2.1 22-Jul-2001  lukem file ipaq_lcd.c was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.10.6.4 18-Dec-2004  skrll Sync with HEAD.
 1.10.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.6.1 03-Aug-2004  skrll Sync with HEAD
 1.12.10.3 03-Sep-2007  yamt sync with head.
 1.12.10.2 30-Dec-2006  yamt sync with head.
 1.12.10.1 21-Jun-2006  yamt sync with head.
 1.13.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.13.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.13.8.1 01-Apr-2006  yamt sync with head.
 1.13.6.1 22-Apr-2006  simonb Sync with head.
 1.13.4.1 09-Sep-2006  rpaulo sync with head
 1.14.10.1 22-Oct-2006  yamt sync with head
 1.14.8.1 18-Nov-2006  ad Sync with head.
 1.15.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.16.44.2 20-Jun-2009  yamt sync with head
 1.16.44.1 16-May-2008  yamt sync with head.
 1.16.42.1 18-May-2008  yamt sync with head.
 1.16.40.1 02-Jun-2008  mjf Sync with HEAD.
 1.19.12.1 03-Dec-2017  jdolecek update from HEAD
 1.20.34.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.21.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 21-Jul-2022  andvar fix typos in comments and log messages, mainly s/intrrupt/interrupt/.
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 10-Jul-2001  ichiro branches: 1.1.2; 1.1.8; 1.1.126; 1.1.128; 1.1.130;
moved sa11x0_lcd* to dev/ipaq_lcd*
 1.1.130.1 16-May-2008  yamt sync with head.
 1.1.128.1 18-May-2008  yamt sync with head.
 1.1.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.8.2 10-Jul-2001  ichiro moved sa11x0_lcd* to dev/ipaq_lcd*
 1.1.8.1 10-Jul-2001  ichiro file ipaq_lcdreg.h was added on branch nathanw_sa on 2001-07-10 18:09:34 +0000
 1.1.2.2 03-Aug-2001  lukem update to -current
 1.1.2.1 10-Jul-2001  lukem file ipaq_lcdreg.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.4 19-Jul-2011  dyoung Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.3 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 10-Jul-2001  ichiro branches: 1.1.2; 1.1.8; 1.1.126; 1.1.128; 1.1.130;
moved sa11x0_lcd* to dev/ipaq_lcd*
 1.1.130.2 20-Jun-2009  yamt sync with head
 1.1.130.1 16-May-2008  yamt sync with head.
 1.1.128.1 18-May-2008  yamt sync with head.
 1.1.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.8.2 10-Jul-2001  ichiro moved sa11x0_lcd* to dev/ipaq_lcd*
 1.1.8.1 10-Jul-2001  ichiro file ipaq_lcdvar.h was added on branch nathanw_sa on 2001-07-10 18:09:34 +0000
 1.1.2.2 03-Aug-2001  lukem update to -current
 1.1.2.1 10-Jul-2001  lukem file ipaq_lcdvar.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.24 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.23 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.22 24-Apr-2021  thorpej branches: 1.22.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.21 26-Jul-2011  dyoung branches: 1.21.68;
Don't set the iobase and iosize members of pcmciabus_attach_args because
they're not used in any meaningful way.
 1.20 19-Jul-2011  dyoung Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.19 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.18 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.17 17-Oct-2007  garbled branches: 1.17.16; 1.17.18; 1.17.20;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.16 09-Jul-2007  ad branches: 1.16.6; 1.16.10;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.15 28-Sep-2006  rjs branches: 1.15.8; 1.15.10; 1.15.16;
ANSIfy.
 1.14 11-Dec-2005  christos branches: 1.14.20; 1.14.22;
merge ktrace-lwp.
 1.13 28-Jun-2005  drochner branches: 1.13.2;
convert remaining autoconf bus "submatch" functions to use the new
signature (passing locators), and remove some which obviously don't
serve any purpose
(untested, sorry)
 1.12 15-Jul-2003  lukem __KERNEL_RCSID()
 1.11 02-Oct-2002  thorpej branches: 1.11.6;
Use CFATTACH_DECL().
 1.10 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.8 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.7 20-Jul-2002  ichiro change path of include file
 1.6 01-Aug-2001  ichiro branches: 1.6.2; 1.6.8; 1.6.16;
add initialization of GPDR pin direction to ipaqpcic_init(sc).
add judgment of complete of the Card (SAPCIC_STATUS_READY)
 1.5 15-Jul-2001  ichiro enable extended gpio operation
 1.4 11-Jul-2001  ichiro I delete unused include file
 1.3 10-Jul-2001  toshii oops. two cookies are too much. use pcictag_cookie.
 1.2 10-Jul-2001  ichiro use sapcic_cookie
 1.1 10-Jul-2001  ichiro add iPAQ virtual bus and PCIC of iPAQ
 1.6.16.1 21-Jul-2002  gehenna catch up with -current.
 1.6.8.3 18-Oct-2002  nathanw Catch up to -current.
 1.6.8.2 01-Aug-2002  nathanw Catch up to -current.
 1.6.8.1 01-Aug-2001  nathanw file ipaq_pcic.c was added on branch nathanw_sa on 2002-08-01 02:41:43 +0000
 1.6.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.6.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.2.2 03-Aug-2001  lukem update to -current
 1.6.2.1 01-Aug-2001  lukem file ipaq_pcic.c was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.11.6.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.11.6.1 03-Aug-2004  skrll Sync with HEAD
 1.13.2.2 03-Sep-2007  yamt sync with head.
 1.13.2.1 30-Dec-2006  yamt sync with head.
 1.14.22.1 22-Oct-2006  yamt sync with head
 1.14.20.1 18-Nov-2006  ad Sync with head.
 1.15.16.1 03-Oct-2007  garbled Sync with HEAD
 1.15.10.1 11-Jul-2007  mjf Sync with head.
 1.15.8.1 15-Jul-2007  ad Sync with head.
 1.16.10.1 06-Nov-2007  matt sync with HEAD
 1.16.6.1 06-Oct-2007  rjs Switch to new interrupt code.
 1.17.20.2 20-Jun-2009  yamt sync with head
 1.17.20.1 16-May-2008  yamt sync with head.
 1.17.18.1 18-May-2008  yamt sync with head.
 1.17.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.21.68.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.22.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 01-Aug-2001  ichiro branches: 1.2.2; 1.2.8; 1.2.126; 1.2.128; 1.2.130;
add more register of DUAL PCMCIA SLEEVE for iPAQ
 1.1 10-Jul-2001  ichiro add iPAQ virtual bus and PCIC of iPAQ
 1.2.130.1 16-May-2008  yamt sync with head.
 1.2.128.1 18-May-2008  yamt sync with head.
 1.2.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.8.2 01-Aug-2001  ichiro add more register of DUAL PCMCIA SLEEVE for iPAQ
 1.2.8.1 01-Aug-2001  ichiro file ipaq_pcicreg.h was added on branch nathanw_sa on 2001-08-01 06:14:32 +0000
 1.2.2.2 03-Aug-2001  lukem update to -current
 1.2.2.1 01-Aug-2001  lukem file ipaq_pcicreg.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.26 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.25 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.24 24-Apr-2021  thorpej branches: 1.24.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.23 19-Jul-2011  dyoung branches: 1.23.68;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.22 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.21 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.20 29-Sep-2006  cube branches: 1.20.24; 1.20.52; 1.20.54; 1.20.56;
A local change crept in when it wasn't meant to, I suppose. [hi rjs!]
 1.19 28-Sep-2006  rjs ANSIfy and fix missed proc -> lwp conversion.
 1.18 11-Apr-2006  peter branches: 1.18.8; 1.18.10;
Add missing disclaimer.
 1.17 11-Dec-2005  christos branches: 1.17.4; 1.17.6; 1.17.8; 1.17.10; 1.17.12;
merge ktrace-lwp.
 1.16 26-Aug-2005  drochner s/locdesc_t/int/g
 1.15 30-Jun-2005  drochner branches: 1.15.2;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.14 15-Jul-2003  lukem __KERNEL_RCSID()
 1.13 02-Oct-2002  thorpej branches: 1.13.6;
Use CFATTACH_DECL().
 1.12 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.11 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.10 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.9 20-Jul-2002  ichiro change path of include file
 1.8 01-Aug-2001  ichiro branches: 1.8.2; 1.8.8; 1.8.16;
i mistake
reverse a change
 1.7 01-Aug-2001  ichiro add entry of Atmel microcontroller and uda1341 codec
 1.6 15-Jul-2001  ichiro Mapping the SSP registers
 1.5 15-Jul-2001  ichiro enable extended gpio operation
 1.4 13-Jul-2001  ichiro The definiton which overlapped was erased.
 1.3 11-Jul-2001  ichiro cosmetic change, add more comment,
delete unused include file
 1.2 10-Jul-2001  ichiro I missed to add bus_space_tag_t mapping
 1.1 10-Jul-2001  ichiro add iPAQ virtual bus and PCIC of iPAQ
 1.8.16.1 21-Jul-2002  gehenna catch up with -current.
 1.8.8.3 18-Oct-2002  nathanw Catch up to -current.
 1.8.8.2 01-Aug-2002  nathanw Catch up to -current.
 1.8.8.1 01-Aug-2001  nathanw file ipaq_saip.c was added on branch nathanw_sa on 2002-08-01 02:41:44 +0000
 1.8.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.8.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.8.2.2 03-Aug-2001  lukem update to -current
 1.8.2.1 01-Aug-2001  lukem file ipaq_saip.c was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.13.6.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.13.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.13.6.1 03-Aug-2004  skrll Sync with HEAD
 1.15.2.2 30-Dec-2006  yamt sync with head.
 1.15.2.1 21-Jun-2006  yamt sync with head.
 1.17.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.17.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.17.8.1 24-May-2006  yamt sync with head.
 1.17.6.1 22-Apr-2006  simonb Sync with head.
 1.17.4.1 09-Sep-2006  rpaulo sync with head
 1.18.10.1 22-Oct-2006  yamt sync with head
 1.18.8.1 18-Nov-2006  ad Sync with head.
 1.20.56.2 20-Jun-2009  yamt sync with head
 1.20.56.1 16-May-2008  yamt sync with head.
 1.20.54.1 18-May-2008  yamt sync with head.
 1.20.52.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.24.1 07-Oct-2007  rjs Pass address of EGPIO as device attribute.
 1.23.68.6 05-Apr-2021  thorpej Treat config_probe() as if it were a boolean function; don't compare
return value > 0... except for the odd balls, which are now really easy
to spot.
 1.23.68.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.23.68.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.23.68.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.23.68.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.23.68.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.24.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.7 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.6 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5 11-Apr-2006  peter branches: 1.5.62; 1.5.64; 1.5.66;
Add missing disclaimer.
 1.4 04-Mar-2006  peter branches: 1.4.2; 1.4.4; 1.4.6;
s/u_intN_t/uintN_t/
 1.3 15-Jul-2001  ichiro branches: 1.3.2; 1.3.8; 1.3.40; 1.3.54; 1.3.56;
add handle of sc_ssph
 1.2 15-Jul-2001  ichiro enable extended gpio operation
 1.1 10-Jul-2001  ichiro add iPAQ virtual bus and PCIC of iPAQ
 1.3.56.1 22-Apr-2006  simonb Sync with head.
 1.3.54.1 09-Sep-2006  rpaulo sync with head
 1.3.40.1 21-Jun-2006  yamt sync with head.
 1.3.8.2 15-Jul-2001  ichiro add handle of sc_ssph
 1.3.8.1 15-Jul-2001  ichiro file ipaq_saipvar.h was added on branch nathanw_sa on 2001-07-15 17:12:12 +0000
 1.3.2.2 03-Aug-2001  lukem update to -current
 1.3.2.1 15-Jul-2001  lukem file ipaq_saipvar.h was added on branch kqueue on 2001-08-03 04:11:32 +0000
 1.4.6.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.4.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.4.2.1 24-May-2006  yamt sync with head.
 1.5.66.2 20-Jun-2009  yamt sync with head
 1.5.66.1 16-May-2008  yamt sync with head.
 1.5.64.1 18-May-2008  yamt sync with head.
 1.5.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.8 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.7 24-Apr-2021  thorpej branches: 1.7.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.6 29-May-2009  rjs branches: 1.6.78;
Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 07-Oct-2006  peter branches: 1.4.24; 1.4.52; 1.4.54; 1.4.56;
Remove the config hook for handling the lcd light, this is now handled by
the powerhooks.
 1.3 27-Jun-2006  peter branches: 1.3.4; 1.3.6; 1.3.8;
Hide the bit invertion/shifting of values received from and send to the MCU
inside the j720ssp_readwrite function. This simplifies the calls to this
function a little.
 1.2 12-Jun-2006  peter branches: 1.2.2; 1.2.4;
Don't pass the size of struct device to CFATTACH_DECL because it's obviously
too small! Use the softc instead. And while here, remove sc_ih from the
softc, it's not used at all.
 1.1 04-Mar-2006  peter branches: 1.1.2; 1.1.8; 1.1.10;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.1.10.1 19-Jun-2006  chap Sync with head.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 04-Mar-2006  simonb file j720kbd.c was added on branch simonb-timecounters on 2006-04-22 11:37:28 +0000
 1.1.2.2 11-Aug-2006  yamt sync with head
 1.1.2.1 26-Jun-2006  yamt sync with head.
 1.2.4.3 30-Dec-2006  yamt sync with head.
 1.2.4.2 21-Jun-2006  yamt sync with head.
 1.2.4.1 12-Jun-2006  yamt file j720kbd.c was added on branch yamt-lazymbuf on 2006-06-21 14:51:44 +0000
 1.2.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.3.8.1 22-Oct-2006  yamt sync with head
 1.3.6.2 09-Sep-2006  rpaulo sync with head
 1.3.6.1 27-Jun-2006  rpaulo file j720kbd.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:39:38 +0000
 1.3.4.1 18-Nov-2006  ad Sync with head.
 1.4.56.2 20-Jun-2009  yamt sync with head
 1.4.56.1 16-May-2008  yamt sync with head.
 1.4.54.1 18-May-2008  yamt sync with head.
 1.4.52.1 02-Jun-2008  mjf Sync with HEAD.
 1.4.24.1 06-Oct-2007  rjs Switch to new interrupt code.
 1.6.78.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.7.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.12 04-Mar-2006  peter Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.6;
merge ktrace-lwp.
 1.10 13-Mar-2004  bjh21 branches: 1.10.16;
Remove needless includes of <dev/pckbc/wskbdmap_mfii.h>.
 1.9 19-Dec-2003  manu fixes for Brazilian keyboard from Rafael Diniz <rafael2k@terra.com.br>
http://mail-index.netbsd.org/port-hpcarm/2003/12/18/0000.html
 1.8 15-Dec-2003  manu Brazilian keymap, submitted by Rafael Diniz
http://mail-index.netbsd.org/port-hpcarm/2003/12/14/0000.html
 1.7 15-Sep-2003  uwe US keydesc corrections from Bryan Vyhmeister (bsd at hub3 dot net).
Tested by Julian Coleman <jdc@netbsd>.
 1.6 15-Jul-2003  lukem __KERNEL_RCSID()
 1.5 27-Aug-2002  manu branches: 1.5.6;
Correctly map altgr on a french keyboard
 1.4 21-Jul-2002  manu Added a french keymap, but the altgr key does not work yet (to be fixed later)
 1.3 18-Jan-2002  toshii branches: 1.3.8;
Add back a missing key mapping for Japanese jornada720.
 1.2 20-Jul-2001  hpeyerl branches: 1.2.6;
make slash, backslash, question, and pipe (bar?) keys work on US Jornada
keyboard.

We still don't have {}[]`~ since these require the 'fn' key modifier. Same
with num-lock, caps-lock or funky british currency symbols.
 1.1 23-Jun-2001  toshii branches: 1.1.2;
Add support for jornada720 keyboard and some LCD parameter controls.
The code is somewhat incomplete, but is quite functional.
 1.1.2.3 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.1.2.1 03-Aug-2001  lukem update to -current
 1.2.6.4 27-Aug-2002  nathanw Catch up to -current.
 1.2.6.3 01-Aug-2002  nathanw Catch up to -current.
 1.2.6.2 28-Feb-2002  nathanw Catch up to -current.
 1.2.6.1 20-Jul-2001  nathanw file j720kbdmap.c was added on branch nathanw_sa on 2002-02-28 04:09:49 +0000
 1.3.8.1 31-Aug-2002  gehenna catch up with -current.
 1.5.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.6.1 03-Aug-2004  skrll Sync with HEAD
 1.10.16.1 21-Jun-2006  yamt sync with head.
 1.11.6.1 22-Apr-2006  simonb Sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.5 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 27-Jun-2006  peter branches: 1.3.6; 1.3.60; 1.3.62; 1.3.64;
Hide the bit invertion/shifting of values received from and send to the MCU
inside the j720ssp_readwrite function. This simplifies the calls to this
function a little.
 1.2 27-Jun-2006  peter Invert the brightness/contrast values so that higher values will
give more brightness/contrast instead of less.

No objection on port-hpcarm.
 1.1 04-Mar-2006  peter branches: 1.1.2; 1.1.8; 1.1.12; 1.1.14;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.1.14.3 30-Dec-2006  yamt sync with head.
 1.1.14.2 21-Jun-2006  yamt sync with head.
 1.1.14.1 04-Mar-2006  yamt file j720lcd.c was added on branch yamt-lazymbuf on 2006-06-21 14:51:44 +0000
 1.1.12.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 04-Mar-2006  simonb file j720lcd.c was added on branch simonb-timecounters on 2006-04-22 11:37:28 +0000
 1.1.2.1 11-Aug-2006  yamt sync with head
 1.3.64.2 20-Jun-2009  yamt sync with head
 1.3.64.1 16-May-2008  yamt sync with head.
 1.3.62.1 18-May-2008  yamt sync with head.
 1.3.60.1 02-Jun-2008  mjf Sync with HEAD.
 1.3.6.2 09-Sep-2006  rpaulo sync with head
 1.3.6.1 27-Jun-2006  rpaulo file j720lcd.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:39:38 +0000
 1.9 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.8 19-Jul-2011  dyoung Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.7 19-Aug-2010  tsutsui Fix device_t/softc split botches. PR port-hpcarm/43780
 1.6 29-May-2009  rjs branches: 1.6.2; 1.6.4;
Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.5 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4 04-Mar-2006  peter branches: 1.4.68; 1.4.70; 1.4.72;
Use ANSI functions decls. KNF.
 1.3 04-Mar-2006  peter Match all Jornada 7xx models.
 1.2 11-Dec-2005  christos branches: 1.2.4; 1.2.6;
merge ktrace-lwp.
 1.1 08-Aug-2003  bsh branches: 1.1.4; 1.1.18;
split StrongArm companion chip (sacc) driver so that we can support
sacc on other platforms than hpcarm (evbarm for example).

codes specific to hpcarm are extracted and moved to hpcarm/dev/.
 1.1.18.1 21-Jun-2006  yamt sync with head.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 08-Aug-2003  skrll file j720pcic.c was added on branch ktrace-lwp on 2004-08-03 10:35:04 +0000
 1.2.6.1 22-Apr-2006  simonb Sync with head.
 1.2.4.1 09-Sep-2006  rpaulo sync with head
 1.4.72.3 09-Oct-2010  yamt sync with head
 1.4.72.2 20-Jun-2009  yamt sync with head
 1.4.72.1 16-May-2008  yamt sync with head.
 1.4.70.1 18-May-2008  yamt sync with head.
 1.4.68.1 02-Jun-2008  mjf Sync with HEAD.
 1.6.4.1 05-Mar-2011  rmind sync with head
 1.6.2.1 22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.7 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.6 24-Apr-2021  thorpej branches: 1.6.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.5 29-May-2009  rjs branches: 1.5.78;
Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.4 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3 07-Oct-2006  peter branches: 1.3.52; 1.3.54; 1.3.56;
Listen for "suspend button" events and do a suspend request to hpcapm when
we receive such event.

No objection on port-hpcarm.
 1.2 27-Jun-2006  peter branches: 1.2.4; 1.2.6; 1.2.8;
Hide the bit invertion/shifting of values received from and send to the MCU
inside the j720ssp_readwrite function. This simplifies the calls to this
function a little.
 1.1 04-Mar-2006  peter branches: 1.1.2; 1.1.8; 1.1.12; 1.1.14;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.1.14.3 30-Dec-2006  yamt sync with head.
 1.1.14.2 21-Jun-2006  yamt sync with head.
 1.1.14.1 04-Mar-2006  yamt file j720pwr.c was added on branch yamt-lazymbuf on 2006-06-21 14:51:44 +0000
 1.1.12.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 04-Mar-2006  simonb file j720pwr.c was added on branch simonb-timecounters on 2006-04-22 11:37:28 +0000
 1.1.2.1 11-Aug-2006  yamt sync with head
 1.2.8.1 22-Oct-2006  yamt sync with head
 1.2.6.2 09-Sep-2006  rpaulo sync with head
 1.2.6.1 27-Jun-2006  rpaulo file j720pwr.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:39:38 +0000
 1.2.4.1 18-Nov-2006  ad Sync with head.
 1.3.56.2 20-Jun-2009  yamt sync with head
 1.3.56.1 16-May-2008  yamt sync with head.
 1.3.54.1 18-May-2008  yamt sync with head.
 1.3.52.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.78.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.6.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.34 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.33 24-Apr-2021  thorpej branches: 1.33.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.32 29-May-2009  rjs branches: 1.32.78;
Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.31 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.30 27-Jun-2006  peter branches: 1.30.58; 1.30.60; 1.30.62;
Hide the bit invertion/shifting of values received from and send to the MCU
inside the j720ssp_readwrite function. This simplifies the calls to this
function a little.
 1.29 04-Mar-2006  peter branches: 1.29.2; 1.29.10;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.28 11-Dec-2005  christos branches: 1.28.4; 1.28.6;
merge ktrace-lwp.
 1.27 10-Nov-2005  peter Add an obviously missing break in a switch statement.
Adjusting brightness and contrast now works!
 1.26 23-Oct-2005  peter Add a dummy WSKBDIO_GETLEDS, to make "wsconsctl -ka" work.
 1.25 23-Oct-2005  peter Remove the DEBUG define, this should be set in the config file.
 1.24 28-Jun-2005  drochner branches: 1.24.2; 1.24.4;
convert remaining autoconf bus "submatch" functions to use the new
signature (passing locators), and remove some which obviously don't
serve any purpose
(untested, sorry)
 1.23 02-Jun-2005  uwe Use __UNCONST to pass default calibration data to tpcalib_ioctl().
 1.22 28-May-2004  tsarna Refactor tpcalib and hpc* ports to make tpcalib MI, as discussed on tech-kern.
 1.21 27-Oct-2003  mycroft Add a default: to a case statement.
 1.20 27-Oct-2003  mycroft In j720ssp_kthread(), move the tsleep() to the end of the loop.
 1.19 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.18 15-Jul-2003  lukem __KERNEL_RCSID()
 1.17 03-Jan-2003  takemura branches: 1.17.2;
Added new ioctl command, WSMOUSEIO_GETID to tell touch panel identifier
for tpctl(8).
 1.16 07-Nov-2002  manu Removed debug messages
 1.15 05-Oct-2002  chs add missing protos.
 1.14 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.13 29-Sep-2002  bsh avoid warning when NAPM==0
 1.12 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.11 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.10 18-Sep-2002  manu - missing bits of apm
- KNF
 1.9 13-Sep-2002  manu fix touchpanel broken behavior:
- when moving the stylus, the cursor was updated only when the screen was
released
- when moving the stylus for too long, the kernel crashed

This was caused by improper delays in SSP read and write, and by interrupt
hammering while the screen is touched). Both led to the machine handling
interrupts all the time and been unable to schedule the X server, therefore
the lack of cursor refresh.

The problem is fixed by
- masking touchpanel interrupts as soon as we are already handling them
- creating a kernel thread (j720ssp) that takes care of keyboard and
touchpanel I/O, instead of doing it in a softintr.
- reducing delays in j720ssp_readwrite operations from 5ms to 0.1ms.

NB: If the delay in j720ssp_readwrite operation is lowered to 0.1, then
switching on the screen using the power key pushes brightness to maximum.
In order to avoid this, we introduce a wait argument to j720ssp_readwrite,
which specify how many microseconds we have to wait. j720ssp_readwrite is
called with wait = 100 everywhere except in j720lcdparam where it is called
with wait = 500. That way it works.
 1.8 22-Jul-2002  manu Implements WSKBDIO_GTYPE
 1.7 19-Jul-2002  ichiro move sa11x0 to under arch/arm
make compile
 1.6 19-Jul-2002  toshii Support jornada720 touchpanel.
 1.5 17-Mar-2002  atatat branches: 1.5.4;
Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.4 02-Feb-2002  uch bootinfo.h, config_hook.h, platid.h are moved to hpc/include
 1.3 28-Dec-2001  toshii Allow jornada720 LCD and keyboard to be used as a boot console.
 1.2 29-Jun-2001  toshii branches: 1.2.2; 1.2.8;
Fix autoconf related botch: do printf("\n") in attach funcs rather than
in cfprint.
 1.1 23-Jun-2001  toshii Add support for jornada720 keyboard and some LCD parameter controls.
The code is somewhat incomplete, but is quite functional.
 1.2.8.9 07-Jan-2003  thorpej Sync with HEAD.
 1.2.8.8 11-Nov-2002  nathanw Catch up to -current
 1.2.8.7 18-Oct-2002  nathanw Catch up to -current.
 1.2.8.6 17-Sep-2002  nathanw Catch up to -current.
 1.2.8.5 01-Aug-2002  nathanw Catch up to -current.
 1.2.8.4 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.8.3 28-Feb-2002  nathanw Catch up to -current.
 1.2.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.2.8.1 29-Jun-2001  nathanw file j720ssp.c was added on branch nathanw_sa on 2002-01-08 00:24:51 +0000
 1.2.2.5 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.2.2 11-Feb-2002  jdolecek Sync w/ -current.
 1.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.5.4.2 31-Aug-2002  gehenna catch up with -current.
 1.5.4.1 21-Jul-2002  gehenna catch up with -current.
 1.17.2.6 11-Dec-2005  christos Sync with head.
 1.17.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.17.2.4 24-Jan-2005  skrll Adapt to branch.
 1.17.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.17.2.1 03-Aug-2004  skrll Sync with HEAD
 1.24.4.1 26-Oct-2005  yamt sync with head
 1.24.2.2 30-Dec-2006  yamt sync with head.
 1.24.2.1 21-Jun-2006  yamt sync with head.
 1.28.6.1 22-Apr-2006  simonb Sync with head.
 1.28.4.1 09-Sep-2006  rpaulo sync with head
 1.29.10.1 13-Jul-2006  gdamore Merge from HEAD.
 1.29.2.1 11-Aug-2006  yamt sync with head
 1.30.62.2 20-Jun-2009  yamt sync with head
 1.30.62.1 16-May-2008  yamt sync with head.
 1.30.60.1 18-May-2008  yamt sync with head.
 1.30.58.1 02-Jun-2008  mjf Sync with HEAD.
 1.32.78.6 05-Apr-2021  thorpej Treat config_probe() as if it were a boolean function; don't compare
return value > 0... except for the odd balls, which are now really easy
to spot.
 1.32.78.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.32.78.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.32.78.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.32.78.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.32.78.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.33.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.4 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 27-Jun-2006  peter branches: 1.2.6; 1.2.60; 1.2.62; 1.2.64;
Hide the bit invertion/shifting of values received from and send to the MCU
inside the j720ssp_readwrite function. This simplifies the calls to this
function a little.
 1.1 04-Mar-2006  peter branches: 1.1.2; 1.1.8; 1.1.12; 1.1.14;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.1.14.3 30-Dec-2006  yamt sync with head.
 1.1.14.2 21-Jun-2006  yamt sync with head.
 1.1.14.1 04-Mar-2006  yamt file j720sspvar.h was added on branch yamt-lazymbuf on 2006-06-21 14:51:44 +0000
 1.1.12.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 04-Mar-2006  simonb file j720sspvar.h was added on branch simonb-timecounters on 2006-04-22 11:37:28 +0000
 1.1.2.1 11-Aug-2006  yamt sync with head
 1.2.64.2 20-Jun-2009  yamt sync with head
 1.2.64.1 16-May-2008  yamt sync with head.
 1.2.62.1 18-May-2008  yamt sync with head.
 1.2.60.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.6.2 09-Sep-2006  rpaulo sync with head
 1.2.6.1 27-Jun-2006  rpaulo file j720sspvar.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:39:38 +0000
 1.15 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.14 30-Aug-2021  rin Fix build without WSDISPLAY_COMPAT_RAWKBD.
 1.13 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.12 24-Apr-2021  thorpej branches: 1.12.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.11 25-Feb-2014  pooka branches: 1.11.44;
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.
 1.10 29-May-2009  rjs branches: 1.10.12; 1.10.22; 1.10.26;
Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.9 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.8 26-Oct-2007  peter branches: 1.8.16; 1.8.18; 1.8.20;
Call callout_init before callout_stop.
 1.7 17-Oct-2007  garbled Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.6 12-Jul-2007  he branches: 1.6.6; 1.6.8; 1.6.10; 1.6.14;
Adapt to the new signature of callout_init().
 1.5 04-Mar-2007  christos branches: 1.5.2; 1.5.10;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.4 12-Nov-2006  plunky branches: 1.4.4;
Tidy away wsmouse_input() abstractions and update
documentation to include the W direction.
 1.3 07-Oct-2006  peter Add support for touches on the HP hard icons, mostly copied from hpcsh but
also with support for raw kbd (for X).

No objection on port-hpcarm.
 1.2 27-Jun-2006  peter branches: 1.2.4; 1.2.6; 1.2.8;
Hide the bit invertion/shifting of values received from and send to the MCU
inside the j720ssp_readwrite function. This simplifies the calls to this
function a little.
 1.1 04-Mar-2006  peter branches: 1.1.2; 1.1.8; 1.1.12; 1.1.14;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.1.14.5 27-Oct-2007  yamt sync with head.
 1.1.14.4 03-Sep-2007  yamt sync with head.
 1.1.14.3 30-Dec-2006  yamt sync with head.
 1.1.14.2 21-Jun-2006  yamt sync with head.
 1.1.14.1 04-Mar-2006  yamt file j720tp.c was added on branch yamt-lazymbuf on 2006-06-21 14:51:44 +0000
 1.1.12.1 13-Jul-2006  gdamore Merge from HEAD.
 1.1.8.2 22-Apr-2006  simonb Sync with head.
 1.1.8.1 04-Mar-2006  simonb file j720tp.c was added on branch simonb-timecounters on 2006-04-22 11:37:28 +0000
 1.1.2.1 11-Aug-2006  yamt sync with head
 1.2.8.2 10-Dec-2006  yamt sync with head.
 1.2.8.1 22-Oct-2006  yamt sync with head
 1.2.6.2 09-Sep-2006  rpaulo sync with head
 1.2.6.1 27-Jun-2006  rpaulo file j720tp.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:39:38 +0000
 1.2.4.1 18-Nov-2006  ad Sync with head.
 1.4.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.5.10.1 03-Oct-2007  garbled Sync with HEAD
 1.5.2.2 03-Dec-2007  ad Sync with HEAD.
 1.5.2.1 15-Jul-2007  ad Sync with head.
 1.6.14.1 13-Nov-2007  bouyer Sync with HEAD
 1.6.10.1 06-Nov-2007  matt sync with HEAD
 1.6.8.1 28-Oct-2007  joerg Sync with HEAD.
 1.6.6.2 01-Nov-2007  rjs Sync with HEAD.
 1.6.6.1 06-Oct-2007  rjs Switch to new interrupt code.
 1.8.20.2 20-Jun-2009  yamt sync with head
 1.8.20.1 16-May-2008  yamt sync with head.
 1.8.18.1 18-May-2008  yamt sync with head.
 1.8.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.10.26.1 18-May-2014  rmind sync with head
 1.10.22.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.12.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11.44.1 02-Apr-2021  thorpej config_found_ia() -> config_found() w/ CFARG_IATTR.
 1.12.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.2 25-Feb-2001  toshii Use MI md_root.c.
 1.1 23-Feb-2001  ichiro hpcarm:
kernel for StrongARM-based WinCE PDA machine.
 1.2 23-Apr-2016  skrll Merge nick-nhusb

- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
 1.1 06-Aug-2011  kiyohara branches: 1.1.12; 1.1.28; 1.1.30; 1.1.34;
Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1.34.1 06-Sep-2016  skrll First pass at netbsd-7 updated with USB code from HEAD
 1.1.30.1 03-Dec-2014  skrll The grand renaming of structure members.

No functional change.
 1.1.28.1 05-Apr-2017  snj Pull up following revision(s) (requested by skrll in ticket #1395):
share/man/man4/axe.4: netbsd-7-nhusb
share/man/man4/axen.4: netbsd-7-nhusb
share/man/man4/cdce.4: netbsd-7-nhusb
share/man/man4/uaudio.4: netbsd-7-nhusb
share/man/man4/ucom.4: netbsd-7-nhusb
share/man/man4/uep.4: netbsd-7-nhusb
share/man/man4/urtw.4: netbsd-7-nhusb
share/man/man4/usb.4: netbsd-7-nhusb
share/man/man4/uyap.4: netbsd-7-nhusb
share/man/man4/xhci.4: netbsd-7-nhusb
share/man/man9/usbdi.9: netbsd-7-nhusb
sys/arch/amd64/conf/ALL: netbsd-7-nhusb
sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb
sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb
sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb
sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb
sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb
sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb
sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb
sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb
sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb
sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb
sys/arch/arm/imx/files.imx23: netbsd-7-nhusb
sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb
sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb
sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb
sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb
sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb
sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb
sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb
sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb
sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb
sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb
sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb
sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb
sys/arch/i386/conf/ALL: netbsd-7-nhusb
sys/arch/i386/conf/GENERIC: netbsd-7-nhusb
sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb
sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb
sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb
sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb
sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb
sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb
sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb
sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb
sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb
sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb
sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb
sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb
sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb
sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb
sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb
sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb
sys/conf/files: netbsd-7-nhusb
sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb
sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb
sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb
sys/dev/ic/sl811hs.c: netbsd-7-nhusb
sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb
sys/dev/isa/slhci_isa.c: netbsd-7-nhusb
sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb
sys/dev/pci/ehci_pci.c: netbsd-7-nhusb
sys/dev/pci/ohci_pci.c: netbsd-7-nhusb
sys/dev/pci/uhci_pci.c: netbsd-7-nhusb
sys/dev/pci/xhci_pci.c: netbsd-7-nhusb
sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb
sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb
sys/dev/usb/TODO: netbsd-7-nhusb
sys/dev/usb/TODO.usbmp: netbsd-7-nhusb
sys/dev/usb/aubtfwl.c: netbsd-7-nhusb
sys/dev/usb/auvitek.c: netbsd-7-nhusb
sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb
sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb
sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb
sys/dev/usb/auvitek_video.c: netbsd-7-nhusb
sys/dev/usb/auvitekvar.h: netbsd-7-nhusb
sys/dev/usb/ehci.c: netbsd-7-nhusb
sys/dev/usb/ehcireg.h: netbsd-7-nhusb
sys/dev/usb/ehcivar.h: netbsd-7-nhusb
sys/dev/usb/emdtv.c: netbsd-7-nhusb
sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb
sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb
sys/dev/usb/emdtvvar.h: netbsd-7-nhusb
sys/dev/usb/ezload.c: netbsd-7-nhusb
sys/dev/usb/ezload.h: netbsd-7-nhusb
sys/dev/usb/files.usb: netbsd-7-nhusb
sys/dev/usb/hid.c: netbsd-7-nhusb
sys/dev/usb/hid.h: netbsd-7-nhusb
sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb
sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb
sys/dev/usb/if_atu.c: netbsd-7-nhusb
sys/dev/usb/if_atureg.h: netbsd-7-nhusb
sys/dev/usb/if_aue.c: netbsd-7-nhusb
sys/dev/usb/if_auereg.h: netbsd-7-nhusb
sys/dev/usb/if_axe.c: netbsd-7-nhusb
sys/dev/usb/if_axen.c: netbsd-7-nhusb
sys/dev/usb/if_axenreg.h: netbsd-7-nhusb
sys/dev/usb/if_axereg.h: netbsd-7-nhusb
sys/dev/usb/if_cdce.c: netbsd-7-nhusb
sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb
sys/dev/usb/if_cue.c: netbsd-7-nhusb
sys/dev/usb/if_cuereg.h: netbsd-7-nhusb
sys/dev/usb/if_kue.c: netbsd-7-nhusb
sys/dev/usb/if_kuereg.h: netbsd-7-nhusb
sys/dev/usb/if_otus.c: netbsd-7-nhusb
sys/dev/usb/if_otusvar.h: netbsd-7-nhusb
sys/dev/usb/if_rum.c: netbsd-7-nhusb
sys/dev/usb/if_rumreg.h: netbsd-7-nhusb
sys/dev/usb/if_rumvar.h: netbsd-7-nhusb
sys/dev/usb/if_run.c: netbsd-7-nhusb
sys/dev/usb/if_runvar.h: netbsd-7-nhusb
sys/dev/usb/if_smsc.c: netbsd-7-nhusb
sys/dev/usb/if_smscreg.h: netbsd-7-nhusb
sys/dev/usb/if_smscvar.h: netbsd-7-nhusb
sys/dev/usb/if_udav.c: netbsd-7-nhusb
sys/dev/usb/if_udavreg.h: netbsd-7-nhusb
sys/dev/usb/if_upgt.c: netbsd-7-nhusb
sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb
sys/dev/usb/if_upl.c: netbsd-7-nhusb
sys/dev/usb/if_ural.c: netbsd-7-nhusb
sys/dev/usb/if_uralreg.h: netbsd-7-nhusb
sys/dev/usb/if_uralvar.h: netbsd-7-nhusb
sys/dev/usb/if_url.c: netbsd-7-nhusb
sys/dev/usb/if_urlreg.h: netbsd-7-nhusb
sys/dev/usb/if_urndis.c: netbsd-7-nhusb
sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb
sys/dev/usb/if_urtw.c: netbsd-7-nhusb
sys/dev/usb/if_urtwn.c: netbsd-7-nhusb
sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb
sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb
sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb
sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb
sys/dev/usb/if_zyd.c: netbsd-7-nhusb
sys/dev/usb/if_zydreg.h: netbsd-7-nhusb
sys/dev/usb/irmce.c: netbsd-7-nhusb
sys/dev/usb/moscom.c: netbsd-7-nhusb
sys/dev/usb/motg.c: netbsd-7-nhusb
sys/dev/usb/motgvar.h: netbsd-7-nhusb
sys/dev/usb/ohci.c: netbsd-7-nhusb
sys/dev/usb/ohcireg.h: netbsd-7-nhusb
sys/dev/usb/ohcivar.h: netbsd-7-nhusb
sys/dev/usb/pseye.c: netbsd-7-nhusb
sys/dev/usb/slurm.c: netbsd-7-nhusb
sys/dev/usb/stuirda.c: netbsd-7-nhusb
sys/dev/usb/u3g.c: netbsd-7-nhusb
sys/dev/usb/uark.c: netbsd-7-nhusb
sys/dev/usb/uatp.c: netbsd-7-nhusb
sys/dev/usb/uaudio.c: netbsd-7-nhusb
sys/dev/usb/uberry.c: netbsd-7-nhusb
sys/dev/usb/ubsa.c: netbsd-7-nhusb
sys/dev/usb/ubsa_common.c: netbsd-7-nhusb
sys/dev/usb/ubsavar.h: netbsd-7-nhusb
sys/dev/usb/ubt.c: netbsd-7-nhusb
sys/dev/usb/uchcom.c: netbsd-7-nhusb
sys/dev/usb/ucom.c: netbsd-7-nhusb
sys/dev/usb/ucomvar.h: netbsd-7-nhusb
sys/dev/usb/ucycom.c: netbsd-7-nhusb
sys/dev/usb/udl.c: netbsd-7-nhusb
sys/dev/usb/udl.h: netbsd-7-nhusb
sys/dev/usb/udsbr.c: netbsd-7-nhusb
sys/dev/usb/udsir.c: netbsd-7-nhusb
sys/dev/usb/uep.c: netbsd-7-nhusb
sys/dev/usb/uftdi.c: netbsd-7-nhusb
sys/dev/usb/uftdireg.h: netbsd-7-nhusb
sys/dev/usb/ugen.c: netbsd-7-nhusb
sys/dev/usb/ugensa.c: netbsd-7-nhusb
sys/dev/usb/uhci.c: netbsd-7-nhusb
sys/dev/usb/uhcireg.h: netbsd-7-nhusb
sys/dev/usb/uhcivar.h: netbsd-7-nhusb
sys/dev/usb/uhid.c: netbsd-7-nhusb
sys/dev/usb/uhidev.c: netbsd-7-nhusb
sys/dev/usb/uhidev.h: netbsd-7-nhusb
sys/dev/usb/uhmodem.c: netbsd-7-nhusb
sys/dev/usb/uhso.c: netbsd-7-nhusb
sys/dev/usb/uhub.c: netbsd-7-nhusb
sys/dev/usb/uipad.c: netbsd-7-nhusb
sys/dev/usb/uipaq.c: netbsd-7-nhusb
sys/dev/usb/uirda.c: netbsd-7-nhusb
sys/dev/usb/uirdavar.h: netbsd-7-nhusb
sys/dev/usb/ukbd.c: netbsd-7-nhusb
sys/dev/usb/ukbdmap.c: netbsd-7-nhusb
sys/dev/usb/ukyopon.c: netbsd-7-nhusb
sys/dev/usb/ukyopon.h: netbsd-7-nhusb
sys/dev/usb/ulpt.c: netbsd-7-nhusb
sys/dev/usb/umass.c: netbsd-7-nhusb
sys/dev/usb/umass_isdata.c: netbsd-7-nhusb
sys/dev/usb/umass_isdata.h: netbsd-7-nhusb
sys/dev/usb/umass_quirks.c: netbsd-7-nhusb
sys/dev/usb/umass_quirks.h: netbsd-7-nhusb
sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb
sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb
sys/dev/usb/umassvar.h: netbsd-7-nhusb
sys/dev/usb/umcs.c: netbsd-7-nhusb
sys/dev/usb/umct.c: netbsd-7-nhusb
sys/dev/usb/umidi.c: netbsd-7-nhusb
sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb
sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb
sys/dev/usb/umodem.c: netbsd-7-nhusb
sys/dev/usb/umodem_common.c: netbsd-7-nhusb
sys/dev/usb/umodemvar.h: netbsd-7-nhusb
sys/dev/usb/ums.c: netbsd-7-nhusb
sys/dev/usb/uplcom.c: netbsd-7-nhusb
sys/dev/usb/urio.c: netbsd-7-nhusb
sys/dev/usb/urio.h: netbsd-7-nhusb
sys/dev/usb/usb.c: netbsd-7-nhusb
sys/dev/usb/usb.h: netbsd-7-nhusb
sys/dev/usb/usb_mem.c: netbsd-7-nhusb
sys/dev/usb/usb_mem.h: netbsd-7-nhusb
sys/dev/usb/usb_quirks.c: netbsd-7-nhusb
sys/dev/usb/usb_quirks.h: netbsd-7-nhusb
sys/dev/usb/usb_subr.c: netbsd-7-nhusb
sys/dev/usb/usbdevices.config: netbsd-7-nhusb
sys/dev/usb/usbdevs: netbsd-7-nhusb
sys/dev/usb/usbdevs.h: netbsd-7-nhusb
sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb
sys/dev/usb/usbdi.c: netbsd-7-nhusb
sys/dev/usb/usbdi.h: netbsd-7-nhusb
sys/dev/usb/usbdi_util.c: netbsd-7-nhusb
sys/dev/usb/usbdi_util.h: netbsd-7-nhusb
sys/dev/usb/usbdivar.h: netbsd-7-nhusb
sys/dev/usb/usbhid.h: netbsd-7-nhusb
sys/dev/usb/usbhist.h: netbsd-7-nhusb
sys/dev/usb/usbroothub.c: netbsd-7-nhusb
sys/dev/usb/usbroothub.h: netbsd-7-nhusb
sys/dev/usb/usbroothub_subr.c: delete
sys/dev/usb/usbroothub_subr.h: delete
sys/dev/usb/uscanner.c: netbsd-7-nhusb
sys/dev/usb/uslsa.c: netbsd-7-nhusb
sys/dev/usb/usscanner.c: netbsd-7-nhusb
sys/dev/usb/ustir.c: netbsd-7-nhusb
sys/dev/usb/uthum.c: netbsd-7-nhusb
sys/dev/usb/utoppy.c: netbsd-7-nhusb
sys/dev/usb/uts.c: netbsd-7-nhusb
sys/dev/usb/uvideo.c: netbsd-7-nhusb
sys/dev/usb/uvisor.c: netbsd-7-nhusb
sys/dev/usb/uvscom.c: netbsd-7-nhusb
sys/dev/usb/uyap.c: netbsd-7-nhusb
sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb
sys/dev/usb/uyurex.c: netbsd-7-nhusb
sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb
sys/dev/usb/xhci.c: netbsd-7-nhusb
sys/dev/usb/xhcireg.h: netbsd-7-nhusb
sys/dev/usb/xhcivar.h: netbsd-7-nhusb
sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb
sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb
sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb
sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb
sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb
sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb
sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb
sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb
sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb
sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb
sys/external/bsd/drm2/include/linux/err.h: delete
sys/external/bsd/drm2/include/linux/workqueue.h: delete
sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb
sys/external/bsd/drm2/linux/linux_work.c: delete
sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb
sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb
sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb
sys/modules/i915drmkms/Makefile: netbsd-7-nhusb
sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb
sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb
sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb
sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete
sys/rump/dev/lib/libusb/opt/opt_usb.h: delete
sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete
sys/sys/mbuf.h: netbsd-7-nhusb
usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb
usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb
Merge netbsd-7-nhusb:
- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
- Change the SOFTINT level from NET to SERIAL for the USB softint handler.
This gives the callback a chance of running when another softint handler
at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of
the network stack.
- kern/49065 - ifconfig tun0 ... sequence locks up system / lockup:
softnet_lock held across usb xfr
- kern/50491 - unkillable wait in usbd_transfer while using usmsc0
on raspberry pi 2
- kern/51395 - USB Ethernet makes xhci hang
- Various improvements to slhci(4)
- Various improvements to dwc2(4)
 1.1.12.1 03-Dec-2017  jdolecek update from HEAD
 1.7 15-Sep-2025  thorpej Encapsulate what's needed to attach an I2C bus into a iicbus_attach()
inline.
 1.6 18-Jun-2022  andvar fix typos in word "functions" in comments, mainly s/fuctions/functions/.
 1.5 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.4 24-Apr-2021  thorpej branches: 1.4.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.3 22-Dec-2019  thorpej branches: 1.3.10;
Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
 1.2 14-Feb-2016  chs branches: 1.2.18;
zero the i2c_attach_args structure before filling it in.
fixes occasional crashes in iic_attach().
 1.1 06-Aug-2011  kiyohara branches: 1.1.12; 1.1.30;
Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1.30.1 19-Mar-2016  skrll Sync with HEAD
 1.1.12.1 03-Dec-2017  jdolecek update from HEAD
 1.2.18.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.3.10.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.4.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.2 24-Apr-2021  thorpej branches: 1.2.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.1 06-Aug-2011  kiyohara branches: 1.1.68;
Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1.68.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.2.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.2 21-Jan-2012  nonaka fix my license notice.
 1.1 06-Aug-2011  kiyohara branches: 1.1.2; 1.1.6;
Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1.6.1 18-Feb-2012  mrg merge to -current.
 1.1.2.1 17-Apr-2012  yamt sync with head
 1.1 06-Aug-2011  kiyohara Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.5 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.4 24-Apr-2021  thorpej branches: 1.4.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.3 16-Jun-2018  thorpej branches: 1.3.16;
More cleanup to i2c autoconfiguration:

- Get all of the drivers onto the new match quality constants.
- Introduce a new helper function, iic_use_direct_match(), that has
all of the logic for direct-config matching. If it returns true,
the driver returns the match result (which may be 0). If it returns
false, the driver does indirect-config matching.
- iic_compat_match() now returns a weighted match quality; matches to
lower-indexed "compatible" device property are more-specific matches,
and return a better match quality accordingly.
 1.2 16-Jun-2012  kiyohara branches: 1.2.38;
Add '\n' to revision string.
 1.1 06-Aug-2011  kiyohara branches: 1.1.2;
Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1.2.1 30-Oct-2012  yamt sync with head
 1.2.38.1 25-Jun-2018  pgoyette Sync with HEAD
 1.3.16.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.3.16.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.3.16.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.3.16.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.3.16.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.4.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.1 06-Aug-2011  kiyohara Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1 06-Aug-2011  kiyohara Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.1 06-Aug-2011  kiyohara Add support for PSIONTEKLOGIX NETBOOK PRO.
 1.15 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.14 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.13 24-Apr-2021  thorpej branches: 1.13.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.12 19-Jul-2011  dyoung branches: 1.12.68;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.11 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.10 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.9 08-Jan-2008  matt branches: 1.9.6; 1.9.8; 1.9.10;
As of this commit, all arm32 kernel now build.
 1.8 09-Jul-2006  peter branches: 1.8.30; 1.8.34; 1.8.40; 1.8.48;
Nit: The silicon revision level is in bits 7:4, so we must right shift
by 4 bits. Also removed an unneeded include.
 1.7 27-Jun-2006  peter Minor KNF, correct some comments.
 1.6 04-Mar-2006  peter branches: 1.6.2; 1.6.10;
s/u_intN_t/uintN_t/
 1.5 04-Mar-2006  peter Match all Jornada 7xx models.
 1.4 11-Dec-2005  christos branches: 1.4.4; 1.4.6;
merge ktrace-lwp.
 1.3 23-Oct-2005  peter - Use ANSI function decls.
- KNF.
 1.2 30-Jun-2005  drochner branches: 1.2.2; 1.2.4;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.1 08-Aug-2003  bsh branches: 1.1.4;
split StrongArm companion chip (sacc) driver so that we can support
sacc on other platforms than hpcarm (evbarm for example).

codes specific to hpcarm are extracted and moved to hpcarm/dev/.
 1.1.4.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 08-Aug-2003  skrll file sacc_hpcarm.c was added on branch ktrace-lwp on 2004-08-03 10:35:04 +0000
 1.2.4.1 26-Oct-2005  yamt sync with head
 1.2.2.3 21-Jan-2008  yamt sync with head
 1.2.2.2 30-Dec-2006  yamt sync with head.
 1.2.2.1 21-Jun-2006  yamt sync with head.
 1.4.6.1 22-Apr-2006  simonb Sync with head.
 1.4.4.1 09-Sep-2006  rpaulo sync with head
 1.6.10.1 13-Jul-2006  gdamore Merge from HEAD.
 1.6.2.1 11-Aug-2006  yamt sync with head
 1.8.48.1 08-Jan-2008  bouyer Sync with HEAD
 1.8.40.1 18-Feb-2008  mjf Sync with HEAD.
 1.8.34.1 09-Jan-2008  matt sync with HEAD
 1.8.30.2 28-Feb-2008  rjs Sync with HEAD.
 1.8.30.1 06-Oct-2007  rjs Switch to new interrupt code.
 1.9.10.2 20-Jun-2009  yamt sync with head
 1.9.10.1 16-May-2008  yamt sync with head.
 1.9.8.1 18-May-2008  yamt sync with head.
 1.9.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.12.68.3 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.12.68.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.12.68.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.13.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.4 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.3 27-Jun-2006  peter branches: 1.3.62;
"AUTHOR" is really meant here, not "REGENTS".
Eleminate some use of #ifdef SED_DEBUG.
 1.2 04-Mar-2006  peter branches: 1.2.2; 1.2.10;
Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.1 23-Jun-2001  toshii branches: 1.1.8; 1.1.40; 1.1.54; 1.1.56;
Move sed1356_softc definition to a header file. Setup a backlight
power control hook.
 1.1.56.1 22-Apr-2006  simonb Sync with head.
 1.1.54.1 09-Sep-2006  rpaulo sync with head
 1.1.40.2 30-Dec-2006  yamt sync with head.
 1.1.40.1 21-Jun-2006  yamt sync with head.
 1.1.8.2 23-Jun-2001  toshii Move sed1356_softc definition to a header file. Setup a backlight
power control hook.
 1.1.8.1 23-Jun-2001  toshii file sed1356var.h was added on branch nathanw_sa on 2001-06-23 09:13:07 +0000
 1.2.10.1 13-Jul-2006  gdamore Merge from HEAD.
 1.2.2.1 11-Aug-2006  yamt sync with head
 1.3.62.1 20-Jun-2009  yamt sync with head
 1.29 28-May-2022  andvar fix various typos, mainly in comments.
 1.28 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.27 24-Apr-2021  thorpej branches: 1.27.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.26 27-Oct-2012  chs branches: 1.26.52;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.25 19-Jul-2011  dyoung branches: 1.25.2; 1.25.12;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.24 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.23 12-Jun-2008  rafal device_private_lookup()-ification so that hpcarm (at jeast Jornada 72x)
kernels build.
 1.22 04-Mar-2007  christos branches: 1.22.40; 1.22.42; 1.22.44; 1.22.46; 1.22.48;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.21 24-Sep-2006  jmcneill branches: 1.21.4;
Add "name" parameter to powerhook_establish, to aid debugging. No objections
on tech-kern@
 1.20 27-Jun-2006  peter branches: 1.20.4; 1.20.6;
"AUTHOR" is really meant here, not "REGENTS".
Eleminate some use of #ifdef SED_DEBUG.
 1.19 26-May-2006  blymn branches: 1.19.2;
Clean up bogus whitespace
 1.18 04-Mar-2006  peter branches: 1.18.2; 1.18.8;
Cleanup:
- Apply static.
- KNF.
- Wrap long lines, unwrap short lines.

No functional changes.
 1.17 04-Mar-2006  peter Only compile in debug strings when SED_DEBUG is defined.
 1.16 04-Mar-2006  peter Split the Jornada 7xx drivers for the touch-panel, keyboard, lcd control
and power management into multiple files. This removes some dirty hacks
and improves the quality of the code.

- j720kbd.c - keyboard driver
* Converted to use the hpckbd(4) interface.
* Remove the old keymap file since it's no longer used.

- j720lcd.c - lcd brightness/control/power control

- j720pwr.c - power management
* Converted to use the hpcapm(4) interface.
* Fix the battery charge status. The values are non-linear so in order
to display a reasonable charge status we use a few charge points in
a table and interpolate between that.

- j720tp.c - touch-panel driver

- j720ssp.c - SSP port (on the SA-1110)

Many thanks to cube@ and uwe@ for providing useful feedback and reviewing
the changes.
 1.15 11-Dec-2005  christos branches: 1.15.4; 1.15.6;
merge ktrace-lwp.
 1.14 12-Dec-2004  abs branches: 1.14.10;
Fix comments regarding configration bounaries
 1.13 15-Jul-2003  lukem __KERNEL_RCSID()
 1.12 02-Oct-2002  thorpej branches: 1.12.6;
Use CFATTACH_DECL().
 1.11 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.10 17-Mar-2002  atatat Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
 1.9 28-Dec-2001  toshii Allow jornada720 LCD and keyboard to be used as a boot console.
 1.8 22-Jul-2001  takemura branches: 1.8.6;
You must set 'HPCFB_SWAP_*' if bytes are stored in reverse order, i.e.
little endian like order, however, usage of 'HPCFB_SWAP_*' was widely
misunderstood because it reminded you of 'RI_BSWAP' in raster operation.
Please note that 'RI_BSWAP' indicate that frame buffer byte order is different
from natural order of system while 'HPCFB_REVORDER_*' is independent of
system byte order.
 1.7 16-Jul-2001  hpeyerl "infomation" -> "information"
 1.6 07-Jul-2001  ichiro branches: 1.6.2;
bzero->memset, bcopy->memcpy
 1.5 29-Jun-2001  toshii Fix autoconf related botch: do printf("\n") in attach funcs rather than
in cfprint.
 1.4 23-Jun-2001  toshii Move sed1356_softc definition to a header file. Setup a backlight
power control hook.
 1.3 22-Jun-2001  toshii Don't include <machine/autoconf.h>, which should not be necessary.
Moreover, hpcarm doesn't have such a header file.
 1.2 16-Jun-2001  toshii Don't set HPCFB_SWAP_BYTE (if little endian).
 1.1 01-Jun-2001  toshii Add support for jornada720's framebuffer.

The functionality is almost same as bivideo, and hardware rasops and
power saving are not yet supported.
 1.6.2.4 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.6.2.3 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.2.1 03-Aug-2001  lukem update to -current
 1.8.6.4 18-Oct-2002  nathanw Catch up to -current.
 1.8.6.3 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.8.6.2 08-Jan-2002  nathanw Catch up to -current.
 1.8.6.1 22-Jul-2001  nathanw file sed_saip.c was added on branch nathanw_sa on 2002-01-08 00:24:51 +0000
 1.12.6.5 24-Jan-2005  skrll Adapt to branch.
 1.12.6.4 18-Dec-2004  skrll Sync with HEAD.
 1.12.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.12.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.12.6.1 03-Aug-2004  skrll Sync with HEAD
 1.14.10.3 03-Sep-2007  yamt sync with head.
 1.14.10.2 30-Dec-2006  yamt sync with head.
 1.14.10.1 21-Jun-2006  yamt sync with head.
 1.15.6.2 01-Jun-2006  kardel Sync with head.
 1.15.6.1 22-Apr-2006  simonb Sync with head.
 1.15.4.1 09-Sep-2006  rpaulo sync with head
 1.18.8.1 19-Jun-2006  chap Sync with head.
 1.18.2.2 11-Aug-2006  yamt sync with head
 1.18.2.1 26-Jun-2006  yamt sync with head.
 1.19.2.1 13-Jul-2006  gdamore Merge from HEAD.
 1.20.6.1 22-Oct-2006  yamt sync with head
 1.20.4.1 18-Nov-2006  ad Sync with head.
 1.21.4.1 12-Mar-2007  rmind Sync with HEAD.
 1.22.48.1 18-Jun-2008  simonb Sync with head.
 1.22.46.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.22.44.2 20-Jun-2009  yamt sync with head
 1.22.44.1 04-May-2009  yamt sync with head.
 1.22.42.1 17-Jun-2008  yamt sync with head.
 1.22.40.1 29-Jun-2008  mjf Sync with HEAD.
 1.25.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.25.2.1 30-Oct-2012  yamt sync with head
 1.26.52.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.27.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.18 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.17 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.16 24-Apr-2021  thorpej branches: 1.16.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.15 19-Jul-2011  dyoung branches: 1.15.68;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.14 29-May-2009  rjs Make the following changes:

struct device * -> device_t
struct cfdata * -> cfdata_t
printf -> aprint_
device_t/softc split
 1.13 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.12 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.11 28-Apr-2008  martin branches: 1.11.8; 1.11.14;
Remove clause 3 and 4 from TNF licenses
 1.10 25-Mar-2006  peter branches: 1.10.62; 1.10.64; 1.10.66;
The sa11x0 include files live in arm/sa11x0 these days.
 1.9 04-Mar-2006  peter branches: 1.9.2; 1.9.4; 1.9.6;
s/u_intN_t/uintN_t/
 1.8 11-Dec-2005  christos branches: 1.8.4; 1.8.6;
merge ktrace-lwp.
 1.7 26-Aug-2005  drochner s/locdesc_t/int/g
 1.6 30-Jun-2005  drochner branches: 1.6.2;
adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes
 1.5 15-Jul-2003  lukem __KERNEL_RCSID()
 1.4 02-Oct-2002  thorpej branches: 1.4.6;
Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.1 15-Jul-2001  ichiro branches: 1.1.2; 1.1.8;
initial commit UDA1341 CODEC
 1.1.8.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.8.1 15-Jul-2001  nathanw file uda1341.c was added on branch nathanw_sa on 2002-10-18 02:37:00 +0000
 1.1.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.2.2 03-Aug-2001  lukem update to -current
 1.1.2.1 15-Jul-2001  lukem file uda1341.c was added on branch kqueue on 2001-08-03 04:11:33 +0000
 1.4.6.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.4.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.4.6.1 03-Aug-2004  skrll Sync with HEAD
 1.6.2.1 21-Jun-2006  yamt sync with head.
 1.8.6.1 22-Apr-2006  simonb Sync with head.
 1.8.4.1 09-Sep-2006  rpaulo sync with head
 1.9.6.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.9.4.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.9.2.1 01-Apr-2006  yamt sync with head.
 1.10.66.3 20-Jun-2009  yamt sync with head
 1.10.66.2 04-May-2009  yamt sync with head.
 1.10.66.1 16-May-2008  yamt sync with head.
 1.10.64.1 18-May-2008  yamt sync with head.
 1.10.62.1 02-Jun-2008  mjf Sync with HEAD.
 1.11.14.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.11.8.1 28-Apr-2009  skrll Sync with HEAD.
 1.15.68.6 05-Apr-2021  thorpej Treat config_probe() as if it were a boolean function; don't compare
return value > 0... except for the odd balls, which are now really easy
to spot.
 1.15.68.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.15.68.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.15.68.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.15.68.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.15.68.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.16.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 15-Jul-2001  ichiro branches: 1.2.2; 1.2.8; 1.2.126; 1.2.128; 1.2.130;
initial commit UDA1341 CODEC
 1.1 15-Jul-2001  ichiro UDA1341TS economy audio CODEC for portable applications.
This is used for iPAQ CODEC.
 1.2.130.1 16-May-2008  yamt sync with head.
 1.2.128.1 18-May-2008  yamt sync with head.
 1.2.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.8.2 15-Jul-2001  ichiro initial commit UDA1341 CODEC
 1.2.8.1 15-Jul-2001  ichiro file uda1341.h was added on branch nathanw_sa on 2001-07-15 20:19:33 +0000
 1.2.2.2 03-Aug-2001  lukem update to -current
 1.2.2.1 15-Jul-2001  lukem file uda1341.h was added on branch kqueue on 2001-08-03 04:11:33 +0000
 1.12 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.11 24-Apr-2021  thorpej branches: 1.11.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.10 21-Nov-2020  thorpej branches: 1.10.2;
malloc(9) -> kmem(9)
 1.9 10-Nov-2019  chs branches: 1.9.8;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.8 27-Oct-2012  chs branches: 1.8.38;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.7 21-Jan-2012  nonaka branches: 1.7.6;
fix my license notice.
 1.6 19-Jul-2011  dyoung branches: 1.6.2; 1.6.6;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.5 30-May-2010  nonaka branches: 1.5.2; 1.5.4;
Use callout_schedule(9).
 1.4 23-May-2010  nonaka Added WS020SH keymap.
 1.3 24-Apr-2010  nonaka branches: 1.3.2;
Oops, the direction of the shift is opposite.
 1.2 24-Apr-2010  nonaka nuke sc_stable_count.
 1.1 17-Apr-2010  nonaka Added Sharp W-ZERO3 series support.
 1.3.2.3 17-Aug-2010  uebayasi Sync with HEAD.
 1.3.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.3.2.1 24-Apr-2010  uebayasi file wzero3_kbd.c was added on branch uebayasi-xip on 2010-04-30 14:39:25 +0000
 1.5.4.2 11-Aug-2010  yamt sync with head.
 1.5.4.1 30-May-2010  yamt file wzero3_kbd.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.5.2.3 03-Jul-2010  rmind sync with head
 1.5.2.2 30-May-2010  rmind sync with head
 1.5.2.1 30-May-2010  rmind file wzero3_kbd.c was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.6.6.1 18-Feb-2012  mrg merge to -current.
 1.6.2.2 30-Oct-2012  yamt sync with head
 1.6.2.1 17-Apr-2012  yamt sync with head
 1.7.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.8.38.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.9.8.1 14-Dec-2020  thorpej Sync w/ HEAD.
 1.10.2.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.11.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.6 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.5 24-Apr-2021  thorpej branches: 1.5.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.4 27-Oct-2012  chs branches: 1.4.52;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.3 21-Jan-2012  nonaka branches: 1.3.6;
fix my license notice.
 1.2 19-Jul-2011  dyoung branches: 1.2.2; 1.2.6;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.1 30-May-2010  nonaka branches: 1.1.2; 1.1.4; 1.1.6;
Added keypad driver for WS011SH.
 1.1.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.6.1 30-May-2010  uebayasi file wzero3_keypad.c was added on branch uebayasi-xip on 2010-08-17 06:44:26 +0000
 1.1.4.2 11-Aug-2010  yamt sync with head.
 1.1.4.1 30-May-2010  yamt file wzero3_keypad.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.1.2.2 03-Jul-2010  rmind sync with head
 1.1.2.1 30-May-2010  rmind file wzero3_keypad.c was added on branch rmind-uvmplock on 2010-07-03 01:19:18 +0000
 1.2.6.1 18-Feb-2012  mrg merge to -current.
 1.2.2.2 30-Oct-2012  yamt sync with head
 1.2.2.1 17-Apr-2012  yamt sync with head
 1.3.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.4.52.1 23-Mar-2021  thorpej Convert config_found_ia() call sites where the device only carries
a single interface attribute to bare config_found() calls.
 1.5.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.8 28-May-2022  andvar fix various typos, mainly in comments.
 1.7 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.6 24-Apr-2021  thorpej branches: 1.6.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.5 27-Oct-2012  chs branches: 1.5.52;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.4 21-Jan-2012  nonaka branches: 1.4.6;
fix my license notice.
 1.3 19-Jul-2011  dyoung branches: 1.3.2; 1.3.6;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.2 09-Dec-2010  uebayasi Fix DEBUG build.
 1.1 17-Apr-2010  nonaka branches: 1.1.2; 1.1.4; 1.1.6;
Added Sharp W-ZERO3 series support.
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 17-Apr-2010  yamt file wzero3_lcd.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.1.4.3 05-Mar-2011  rmind sync with head
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 17-Apr-2010  rmind file wzero3_lcd.c was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 17-Apr-2010  uebayasi file wzero3_lcd.c was added on branch uebayasi-xip on 2010-04-30 14:39:25 +0000
 1.3.6.1 18-Feb-2012  mrg merge to -current.
 1.3.2.2 30-Oct-2012  yamt sync with head
 1.3.2.1 17-Apr-2012  yamt sync with head
 1.4.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.5.52.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.6.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.4 21-Jan-2012  nonaka fix my license notice.
 1.3 19-Jul-2011  dyoung branches: 1.3.2; 1.3.6;
Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.2 23-May-2010  nonaka branches: 1.2.2; 1.2.4;
Added Support SD card insert/remove detection for WS020SH.
 1.1 17-Apr-2010  nonaka branches: 1.1.2;
Added Sharp W-ZERO3 series support.
 1.1.2.3 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 17-Apr-2010  uebayasi file wzero3_mci.c was added on branch uebayasi-xip on 2010-04-30 14:39:25 +0000
 1.2.4.2 11-Aug-2010  yamt sync with head.
 1.2.4.1 23-May-2010  yamt file wzero3_mci.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.2.2.2 30-May-2010  rmind sync with head
 1.2.2.1 23-May-2010  rmind file wzero3_mci.c was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.3.6.1 18-Feb-2012  mrg merge to -current.
 1.3.2.1 17-Apr-2012  yamt sync with head
 1.7 21-Jan-2012  nonaka fix my license notice.
 1.6 30-May-2010  nonaka branches: 1.6.2; 1.6.10; 1.6.14;
Added keypad driver for WS011SH.
 1.5 23-May-2010  nonaka branches: 1.5.2;
Added some WS020SH specific parameters.
 1.4 22-May-2010  nonaka Added touchpad driver for WS011SH.
 1.3 13-May-2010  nonaka Added touchpad driver for WS003SH.
 1.2 09-May-2010  nonaka Added touchpad driver for WS007SH.
 1.1 17-Apr-2010  nonaka branches: 1.1.2;
Added Sharp W-ZERO3 series support.
 1.1.2.3 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 17-Apr-2010  uebayasi file wzero3_reg.h was added on branch uebayasi-xip on 2010-04-30 14:39:25 +0000
 1.5.2.3 03-Jul-2010  rmind sync with head
 1.5.2.2 30-May-2010  rmind sync with head
 1.5.2.1 23-May-2010  rmind file wzero3_reg.h was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.6.14.1 18-Feb-2012  mrg merge to -current.
 1.6.10.1 17-Apr-2012  yamt sync with head
 1.6.2.2 11-Aug-2010  yamt sync with head.
 1.6.2.1 30-May-2010  yamt file wzero3_reg.h was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.5 21-Jan-2012  nonaka fix my license notice.
 1.4 30-May-2010  nonaka branches: 1.4.2; 1.4.4; 1.4.12; 1.4.16;
Added keypad driver for WS011SH.
 1.3 22-May-2010  nonaka branches: 1.3.2;
Added touchpad driver for WS011SH.
 1.2 13-May-2010  nonaka Added touchpad driver for WS003SH.
 1.1 09-May-2010  nonaka Added touchpad driver for WS007SH.
 1.3.2.3 03-Jul-2010  rmind sync with head
 1.3.2.2 30-May-2010  rmind sync with head
 1.3.2.1 22-May-2010  rmind file wzero3_ssp.c was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.4.16.1 18-Feb-2012  mrg merge to -current.
 1.4.12.1 17-Apr-2012  yamt sync with head
 1.4.4.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.4.4.1 30-May-2010  uebayasi file wzero3_ssp.c was added on branch uebayasi-xip on 2010-08-17 06:44:26 +0000
 1.4.2.2 11-Aug-2010  yamt sync with head.
 1.4.2.1 30-May-2010  yamt file wzero3_ssp.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.5 21-Jan-2012  nonaka fix my license notice.
 1.4 30-May-2010  nonaka branches: 1.4.2; 1.4.4; 1.4.12; 1.4.16;
Added keypad driver for WS011SH.
 1.3 22-May-2010  nonaka branches: 1.3.2;
Added touchpad driver for WS011SH.
 1.2 13-May-2010  nonaka Added touchpad driver for WS003SH.
 1.1 09-May-2010  nonaka Added touchpad driver for WS007SH.
 1.3.2.3 03-Jul-2010  rmind sync with head
 1.3.2.2 30-May-2010  rmind sync with head
 1.3.2.1 22-May-2010  rmind file wzero3_sspvar.h was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.4.16.1 18-Feb-2012  mrg merge to -current.
 1.4.12.1 17-Apr-2012  yamt sync with head
 1.4.4.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.4.4.1 30-May-2010  uebayasi file wzero3_sspvar.h was added on branch uebayasi-xip on 2010-08-17 06:44:27 +0000
 1.4.2.2 11-Aug-2010  yamt sync with head.
 1.4.2.1 30-May-2010  yamt file wzero3_sspvar.h was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.11 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.10 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.9 24-Apr-2021  thorpej branches: 1.9.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.8 27-Oct-2012  chs branches: 1.8.52;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.7 21-Jan-2012  nonaka branches: 1.7.6;
fix my license notice.
 1.6 19-Jul-2010  tsutsui branches: 1.6.2; 1.6.4; 1.6.12; 1.6.16;
- in max1233_readpos(), add some DELAY() after starting A/D so that
output values of touchscreen position are more stable on my WS003SH
- also tidy up read and calc ops in max1233_readpos()
- turn DAC on in max1233_init() as well as max1233_resume()
 1.5 30-May-2010  nonaka Added keypad driver for WS011SH.
 1.4 22-May-2010  nonaka branches: 1.4.2;
Added touchpad driver for WS011SH.
 1.3 15-May-2010  nonaka tune ADC Averaging Control parameter.
 1.2 13-May-2010  nonaka Added touchpad driver for WS003SH.
 1.1 09-May-2010  nonaka Added touchpad driver for WS007SH.
 1.4.2.4 05-Mar-2011  rmind sync with head
 1.4.2.3 03-Jul-2010  rmind sync with head
 1.4.2.2 30-May-2010  rmind sync with head
 1.4.2.1 22-May-2010  rmind file wzero3_tp.c was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.6.16.1 18-Feb-2012  mrg merge to -current.
 1.6.12.2 30-Oct-2012  yamt sync with head
 1.6.12.1 17-Apr-2012  yamt sync with head
 1.6.4.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.6.4.1 19-Jul-2010  uebayasi file wzero3_tp.c was added on branch uebayasi-xip on 2010-08-17 06:44:27 +0000
 1.6.2.2 11-Aug-2010  yamt sync with head.
 1.6.2.1 19-Jul-2010  yamt file wzero3_tp.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.7.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.8.52.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.9.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.2 19-Jul-2011  dyoung Change <machine/bus.h> to <sys/bus.h> throughout.

Split bus.h -> bus_{defs,funcs}.h.

Mark hpcarm/bus.h obsolete.
 1.1 17-Apr-2010  nonaka branches: 1.1.2; 1.1.4; 1.1.6;
Added Sharp W-ZERO3 series support.
 1.1.6.2 11-Aug-2010  yamt sync with head.
 1.1.6.1 17-Apr-2010  yamt file wzero3_usb.c was added on branch yamt-nfs-mp on 2010-08-11 22:52:05 +0000
 1.1.4.2 30-May-2010  rmind sync with head
 1.1.4.1 17-Apr-2010  rmind file wzero3_usb.c was added on branch rmind-uvmplock on 2010-05-30 05:16:51 +0000
 1.1.2.2 30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1 17-Apr-2010  uebayasi file wzero3_usb.c was added on branch uebayasi-xip on 2010-04-30 14:39:25 +0000

RSS XML Feed