1296177Sjhibbits/*- 2296177Sjhibbits * Copyright (c) 2011-2012 Semihalf. 3296177Sjhibbits * All rights reserved. 4296177Sjhibbits * 5296177Sjhibbits * Redistribution and use in source and binary forms, with or without 6296177Sjhibbits * modification, are permitted provided that the following conditions 7296177Sjhibbits * are met: 8296177Sjhibbits * 1. Redistributions of source code must retain the above copyright 9296177Sjhibbits * notice, this list of conditions and the following disclaimer. 10296177Sjhibbits * 2. Redistributions in binary form must reproduce the above copyright 11296177Sjhibbits * notice, this list of conditions and the following disclaimer in the 12296177Sjhibbits * documentation and/or other materials provided with the distribution. 13296177Sjhibbits * 14296177Sjhibbits * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15296177Sjhibbits * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16296177Sjhibbits * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17296177Sjhibbits * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18296177Sjhibbits * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19296177Sjhibbits * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20296177Sjhibbits * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21296177Sjhibbits * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22296177Sjhibbits * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23296177Sjhibbits * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24296177Sjhibbits * SUCH DAMAGE. 25296177Sjhibbits * 26296177Sjhibbits * $FreeBSD$ 27296177Sjhibbits */ 28296177Sjhibbits 29296177Sjhibbits#ifndef FMAN_H_ 30296177Sjhibbits#define FMAN_H_ 31296177Sjhibbits 32296177Sjhibbits/** 33296177Sjhibbits * FMan driver instance data. 34296177Sjhibbits */ 35296177Sjhibbitsstruct fman_softc { 36296177Sjhibbits device_t dev; 37296177Sjhibbits struct resource *mem_res; 38296177Sjhibbits struct resource *irq_res; 39296177Sjhibbits struct resource *err_irq_res; 40296177Sjhibbits int mem_rid; 41296177Sjhibbits int irq_rid; 42296177Sjhibbits int err_irq_rid; 43296177Sjhibbits 44296177Sjhibbits t_Handle fm_handle; 45296177Sjhibbits t_Handle muram_handle; 46296177Sjhibbits}; 47296177Sjhibbits 48296177Sjhibbits 49296177Sjhibbits/** 50296177Sjhibbits * @group QMan bus interface. 51296177Sjhibbits * @{ 52296177Sjhibbits */ 53296177Sjhibbitsint fman_attach(device_t dev); 54296177Sjhibbitsint fman_detach(device_t dev); 55296177Sjhibbitsint fman_suspend(device_t dev); 56296177Sjhibbitsint fman_resume(device_t dev); 57296177Sjhibbitsint fman_shutdown(device_t dev); 58296177Sjhibbitsint fman_read_ivar(device_t dev, device_t child, int index, 59296177Sjhibbits uintptr_t *result); 60296177Sjhibbits/** @} */ 61296177Sjhibbits 62296177Sjhibbitsuint32_t fman_get_clock(struct fman_softc *sc); 63296177Sjhibbitsint fman_get_handle(t_Handle *fmh); 64296177Sjhibbitsint fman_get_muram_handle(t_Handle *muramh); 65296177Sjhibbitsint fman_get_bushandle(vm_offset_t *fm_base); 66296177Sjhibbits 67296177Sjhibbits#endif /* FMAN_H_ */ 68