xref: /freebsd/sys/dev/dpaa/fman.h (revision 0aeed3e99367bed5755068d9218cd8041644ff2b)
1*0aeed3e9SJustin Hibbits /*-
2*0aeed3e9SJustin Hibbits  * Copyright (c) 2011-2012 Semihalf.
3*0aeed3e9SJustin Hibbits  * All rights reserved.
4*0aeed3e9SJustin Hibbits  *
5*0aeed3e9SJustin Hibbits  * Redistribution and use in source and binary forms, with or without
6*0aeed3e9SJustin Hibbits  * modification, are permitted provided that the following conditions
7*0aeed3e9SJustin Hibbits  * are met:
8*0aeed3e9SJustin Hibbits  * 1. Redistributions of source code must retain the above copyright
9*0aeed3e9SJustin Hibbits  *    notice, this list of conditions and the following disclaimer.
10*0aeed3e9SJustin Hibbits  * 2. Redistributions in binary form must reproduce the above copyright
11*0aeed3e9SJustin Hibbits  *    notice, this list of conditions and the following disclaimer in the
12*0aeed3e9SJustin Hibbits  *    documentation and/or other materials provided with the distribution.
13*0aeed3e9SJustin Hibbits  *
14*0aeed3e9SJustin Hibbits  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*0aeed3e9SJustin Hibbits  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*0aeed3e9SJustin Hibbits  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*0aeed3e9SJustin Hibbits  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*0aeed3e9SJustin Hibbits  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*0aeed3e9SJustin Hibbits  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*0aeed3e9SJustin Hibbits  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*0aeed3e9SJustin Hibbits  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*0aeed3e9SJustin Hibbits  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*0aeed3e9SJustin Hibbits  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*0aeed3e9SJustin Hibbits  * SUCH DAMAGE.
25*0aeed3e9SJustin Hibbits  *
26*0aeed3e9SJustin Hibbits  * $FreeBSD$
27*0aeed3e9SJustin Hibbits  */
28*0aeed3e9SJustin Hibbits 
29*0aeed3e9SJustin Hibbits #ifndef FMAN_H_
30*0aeed3e9SJustin Hibbits #define FMAN_H_
31*0aeed3e9SJustin Hibbits 
32*0aeed3e9SJustin Hibbits /**
33*0aeed3e9SJustin Hibbits  * FMan driver instance data.
34*0aeed3e9SJustin Hibbits  */
35*0aeed3e9SJustin Hibbits struct fman_softc {
36*0aeed3e9SJustin Hibbits 	device_t dev;
37*0aeed3e9SJustin Hibbits 	struct resource *mem_res;
38*0aeed3e9SJustin Hibbits 	struct resource *irq_res;
39*0aeed3e9SJustin Hibbits 	struct resource *err_irq_res;
40*0aeed3e9SJustin Hibbits 	int mem_rid;
41*0aeed3e9SJustin Hibbits 	int irq_rid;
42*0aeed3e9SJustin Hibbits 	int err_irq_rid;
43*0aeed3e9SJustin Hibbits 
44*0aeed3e9SJustin Hibbits 	t_Handle fm_handle;
45*0aeed3e9SJustin Hibbits 	t_Handle muram_handle;
46*0aeed3e9SJustin Hibbits };
47*0aeed3e9SJustin Hibbits 
48*0aeed3e9SJustin Hibbits 
49*0aeed3e9SJustin Hibbits /**
50*0aeed3e9SJustin Hibbits  * @group QMan bus interface.
51*0aeed3e9SJustin Hibbits  * @{
52*0aeed3e9SJustin Hibbits  */
53*0aeed3e9SJustin Hibbits int	fman_attach(device_t dev);
54*0aeed3e9SJustin Hibbits int	fman_detach(device_t dev);
55*0aeed3e9SJustin Hibbits int	fman_suspend(device_t dev);
56*0aeed3e9SJustin Hibbits int	fman_resume(device_t dev);
57*0aeed3e9SJustin Hibbits int	fman_shutdown(device_t dev);
58*0aeed3e9SJustin Hibbits int	fman_read_ivar(device_t dev, device_t child, int index,
59*0aeed3e9SJustin Hibbits 	    uintptr_t *result);
60*0aeed3e9SJustin Hibbits /** @} */
61*0aeed3e9SJustin Hibbits 
62*0aeed3e9SJustin Hibbits uint32_t	fman_get_clock(struct fman_softc *sc);
63*0aeed3e9SJustin Hibbits int	fman_get_handle(t_Handle *fmh);
64*0aeed3e9SJustin Hibbits int	fman_get_muram_handle(t_Handle *muramh);
65*0aeed3e9SJustin Hibbits int	fman_get_bushandle(vm_offset_t *fm_base);
66*0aeed3e9SJustin Hibbits 
67*0aeed3e9SJustin Hibbits #endif /* FMAN_H_ */
68