1.\" Copyright (c) 2023 Vladimir Kondratyev <wulf@FreeBSD.org> 2.\" 3.\" Redistribution and use in source and binary forms, with or without 4.\" modification, are permitted provided that the following conditions 5.\" are met: 6.\" 1. Redistributions of source code must retain the above copyright 7.\" notice, this list of conditions and the following disclaimer. 8.\" 2. Redistributions in binary form must reproduce the above copyright 9.\" notice, this list of conditions and the following disclaimer in the 10.\" documentation and/or other materials provided with the distribution. 11.\" 12.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 13.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 22.\" SUCH DAMAGE. 23.\" 24.Dd August 17, 2023 25.Dt ATOPCASE 4 26.Os 27.Sh NAME 28.Nm atopcase 29.Nd Apple HID-over-SPI transport driver 30.Sh SYNOPSIS 31To compile this driver into the kernel, 32place the following lines in your 33kernel configuration file: 34.Bd -ragged -offset indent 35.Cd "device atopcase" 36.Cd "device intelspi" 37.Cd "device spibus" 38.Cd "device hidbus" 39.Cd "device hkbd" 40.Ed 41.Pp 42Alternatively, to load the driver as a 43module at boot time, place the following line in 44.Xr loader.conf 5 : 45.Bd -literal -offset indent 46atopcase_load="YES" 47hkbd_load="YES" 48.Ed 49.Sh DESCRIPTION 50The 51.Nm 52driver provides support for Human Interface Devices (HID) on 53Serial Peripheral Interface (SPI) buses on Apple Intel Macs. 54.Sh HARDWARE 55The 56.Nm 57driver supports the following MacBooks produced in 2015-2018 years: 58.Pp 59.Bl -bullet -compact 60.It 61Macbook8,1 62.It 63Macbook9,1 64.It 65Macbook10,1 66.It 67MacbookPro11,4 68.It 69MacbookPro12,1 70.It 71MacbookPro13,1 72.It 73MacbookPro13,2 74.It 75MacbookPro13,3 76.It 77MacbookPro14,1 78.It 79MacbookPro14,2 80.It 81MacbookPro14,3 82.El 83.Sh SYSCTL VARIABLES 84The following variables are available as both 85.Xr sysctl 8 86variables and 87.Xr loader 8 88tunables: 89.Bl -tag -width indent 90.It Va hw.hid.atopcase.debug 91Debug output level, where 0 is debugging disabled and larger values increase 92debug message verbosity. 93Default is 0. 94.El 95.Sh FILES 96.Bl -tag -width ".Pa /dev/backlight/atopcase0" -compact 97.It Pa /dev/backlight/atopcase0 98Keyboard 99.Xr backlight 8 100device node. 101.El 102.Sh SEE ALSO 103.Xr acpi 4 , 104.Xr backlight 8 , 105.Xr loader 8 , 106.Xr loader.conf 5 . 107.Sh HISTORY 108The 109.Nm 110driver first appeared in 111.Fx 14.0. 112.Sh AUTHORS 113.An -nosplit 114The 115.Nm 116driver was originally written by 117.An Val Packett Aq Mt val@packett.cool 118and marginally improved upon by 119.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org . 120.Pp 121This manual page was written by 122.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org . 123.Sh BUGS 124Device interrupts are not acknowledged on some hardware that results in 125interrupt storm. 126Installation of Darwin OSI in 127.Xr acpi 4 128driver fixes the issue. 129To install Darwin OSI add following lines to 130.Xr loader.conf 5 : 131.Bl -tag -width indent 132.It Va hw.acpi.install_interface="Darwin" 133.It Va hw.acpi.remove_interface="Windows 2009, Windows 2012" 134.El 135