1*9709bda0SColin Percival /*- 2*9709bda0SColin Percival * SPDX-License-Identifier: BSD-2-Clause 3*9709bda0SColin Percival * 4*9709bda0SColin Percival * Copyright (c) 2024 Colin Percival 5*9709bda0SColin Percival * 6*9709bda0SColin Percival * Redistribution and use in source and binary forms, with or without 7*9709bda0SColin Percival * modification, are permitted provided that the following conditions 8*9709bda0SColin Percival * are met: 9*9709bda0SColin Percival * 1. Redistributions of source code must retain the above copyright 10*9709bda0SColin Percival * notice, this list of conditions and the following disclaimer. 11*9709bda0SColin Percival * 2. Redistributions in binary form must reproduce the above copyright 12*9709bda0SColin Percival * notice, this list of conditions and the following disclaimer in the 13*9709bda0SColin Percival * documentation and/or other materials provided with the distribution. 14*9709bda0SColin Percival * 15*9709bda0SColin Percival * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16*9709bda0SColin Percival * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17*9709bda0SColin Percival * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18*9709bda0SColin Percival * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19*9709bda0SColin Percival * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20*9709bda0SColin Percival * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21*9709bda0SColin Percival * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22*9709bda0SColin Percival * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23*9709bda0SColin Percival * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24*9709bda0SColin Percival * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25*9709bda0SColin Percival * SUCH DAMAGE. 26*9709bda0SColin Percival */ 27*9709bda0SColin Percival 28*9709bda0SColin Percival #ifndef __ACPI_GPIOBUS_H__ 29*9709bda0SColin Percival #define __ACPI_GPIOBUS_H__ 30*9709bda0SColin Percival 31*9709bda0SColin Percival #include <sys/bus.h> 32*9709bda0SColin Percival 33*9709bda0SColin Percival #include <contrib/dev/acpica/include/acpi.h> 34*9709bda0SColin Percival 35*9709bda0SColin Percival enum acpi_gpiobus_ivars { 36*9709bda0SColin Percival ACPI_GPIOBUS_IVAR_HANDLE = 10600, 37*9709bda0SColin Percival }; 38*9709bda0SColin Percival 39*9709bda0SColin Percival #define ACPI_GPIOBUS_ACCESSOR(var, ivar, type) \ 40*9709bda0SColin Percival __BUS_ACCESSOR(acpi_gpiobus, var, ACPI_GPIOBUS, ivar, type) 41*9709bda0SColin Percival 42*9709bda0SColin Percival ACPI_GPIOBUS_ACCESSOR(handle, HANDLE, ACPI_HANDLE) 43*9709bda0SColin Percival 44*9709bda0SColin Percival #undef ACPI_GPIOBUS_ACCESSOR 45*9709bda0SColin Percival 46*9709bda0SColin Percival int gpio_pin_get_by_acpi_index(device_t consumer, uint32_t idx, 47*9709bda0SColin Percival gpio_pin_t *out_pin); 48*9709bda0SColin Percival 49*9709bda0SColin Percival #endif /* __ACPI_GPIOBUS_H__ */ 50