10c94beceSRuslan Bukin /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3af3dc4a7SPedro F. Giffuni * 40c94beceSRuslan Bukin * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com> 50c94beceSRuslan Bukin * All rights reserved. 60c94beceSRuslan Bukin * 70c94beceSRuslan Bukin * Redistribution and use in source and binary forms, with or without 80c94beceSRuslan Bukin * modification, are permitted provided that the following conditions 90c94beceSRuslan Bukin * are met: 100c94beceSRuslan Bukin * 1. Redistributions of source code must retain the above copyright 110c94beceSRuslan Bukin * notice, this list of conditions and the following disclaimer. 120c94beceSRuslan Bukin * 2. Redistributions in binary form must reproduce the above copyright 130c94beceSRuslan Bukin * notice, this list of conditions and the following disclaimer in the 140c94beceSRuslan Bukin * documentation and/or other materials provided with the distribution. 150c94beceSRuslan Bukin * 160c94beceSRuslan Bukin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 170c94beceSRuslan Bukin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 180c94beceSRuslan Bukin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 190c94beceSRuslan Bukin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 200c94beceSRuslan Bukin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 210c94beceSRuslan Bukin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 220c94beceSRuslan Bukin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 230c94beceSRuslan Bukin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 240c94beceSRuslan Bukin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 250c94beceSRuslan Bukin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 260c94beceSRuslan Bukin * SUCH DAMAGE. 270c94beceSRuslan Bukin */ 280c94beceSRuslan Bukin 290c94beceSRuslan Bukin #define NPORTS 5 300c94beceSRuslan Bukin #define NGPIO (NPORTS * 32) 310c94beceSRuslan Bukin 320c94beceSRuslan Bukin enum ev_type { 330c94beceSRuslan Bukin DMA_RISING_EDGE, 340c94beceSRuslan Bukin DMA_FALLING_EDGE, 350c94beceSRuslan Bukin DMA_EITHER_EDGE, 360c94beceSRuslan Bukin INT_LOGIC_ZERO, 370c94beceSRuslan Bukin INT_RISING_EDGE, 380c94beceSRuslan Bukin INT_FALLING_EDGE, 390c94beceSRuslan Bukin INT_EITHER_EDGE, 400c94beceSRuslan Bukin INT_LOGIC_ONE, 410c94beceSRuslan Bukin }; 420c94beceSRuslan Bukin 430c94beceSRuslan Bukin int port_setup(int, enum ev_type, void (*ih)(void *), void *ih_user); 44