xref: /freebsd/usr.bin/sdiotool/linux_sdio_compat.h (revision 1d386b48a555f61cb7325543adbbb5c3f3407a66)
1029c02a3SIlya Bakulin /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
36e778a7eSPedro F. Giffuni  *
4029c02a3SIlya Bakulin  * Copyright (c) 2017 Ilya Bakulin
5029c02a3SIlya Bakulin  * All rights reserved.
6029c02a3SIlya Bakulin  *
7029c02a3SIlya Bakulin  * Redistribution and use in source and binary forms, with or without
8029c02a3SIlya Bakulin  * modification, are permitted provided that the following conditions
9029c02a3SIlya Bakulin  * are met:
10029c02a3SIlya Bakulin  * 1. Redistributions of source code must retain the above copyright
11029c02a3SIlya Bakulin  *    notice, this list of conditions and the following disclaimer.
12029c02a3SIlya Bakulin  * 2. Redistributions in binary form must reproduce the above copyright
13029c02a3SIlya Bakulin  *    notice, this list of conditions and the following disclaimer in the
14029c02a3SIlya Bakulin  *    documentation and/or other materials provided with the distribution.
15029c02a3SIlya Bakulin  *
16029c02a3SIlya Bakulin  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17029c02a3SIlya Bakulin  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18029c02a3SIlya Bakulin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19029c02a3SIlya Bakulin  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20029c02a3SIlya Bakulin  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21029c02a3SIlya Bakulin  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22029c02a3SIlya Bakulin  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23029c02a3SIlya Bakulin  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24029c02a3SIlya Bakulin  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25029c02a3SIlya Bakulin  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26029c02a3SIlya Bakulin  * SUCH DAMAGE.
27029c02a3SIlya Bakulin  */
28029c02a3SIlya Bakulin 
29029c02a3SIlya Bakulin #include <sys/cdefs.h>
30029c02a3SIlya Bakulin #ifndef _LINUX_SDIO_COMPAT_H_
31029c02a3SIlya Bakulin #define _LINUX_SDIO_COMPAT_H_
32029c02a3SIlya Bakulin 
33029c02a3SIlya Bakulin #include <sys/types.h>
34029c02a3SIlya Bakulin #include "linux_compat.h"
35029c02a3SIlya Bakulin 
36029c02a3SIlya Bakulin /* Linux SDIO stack functions and definitions */
37029c02a3SIlya Bakulin #define SDIO_CCCR_ABORT SD_IO_CCCR_CTL
38029c02a3SIlya Bakulin #define SDIO_CCCR_IENx  SD_IO_CCCR_INT_ENABLE
39029c02a3SIlya Bakulin 
40029c02a3SIlya Bakulin struct sdio_func {
41029c02a3SIlya Bakulin 	struct cam_device *dev;
42029c02a3SIlya Bakulin 	uint8_t num;
43029c02a3SIlya Bakulin };
44029c02a3SIlya Bakulin 
45029c02a3SIlya Bakulin u8 sdio_readb(struct sdio_func *func, unsigned int addr, int *err_ret);
46029c02a3SIlya Bakulin unsigned char sdio_f0_readb(struct sdio_func *func,
47029c02a3SIlya Bakulin 			    unsigned int addr, int *err_ret);
48029c02a3SIlya Bakulin u16 sdio_readw(struct sdio_func *func, unsigned int addr, int *err_ret);
49029c02a3SIlya Bakulin u32 sdio_readl(struct sdio_func *func, unsigned int addr, int *err_ret);
50029c02a3SIlya Bakulin 
51029c02a3SIlya Bakulin void sdio_writeb(struct sdio_func *func, u8 b,
52029c02a3SIlya Bakulin 	unsigned int addr, int *err_ret);
53029c02a3SIlya Bakulin void sdio_f0_writeb(struct sdio_func *func, unsigned char b,
54029c02a3SIlya Bakulin 		    unsigned int addr, int *err_ret);
55029c02a3SIlya Bakulin void sdio_writew(struct sdio_func *func, u16 b,
56029c02a3SIlya Bakulin 	unsigned int addr, int *err_ret);
57029c02a3SIlya Bakulin void sdio_writel(struct sdio_func *func, u32 b,
58029c02a3SIlya Bakulin 	unsigned int addr, int *err_ret);
59029c02a3SIlya Bakulin 
60029c02a3SIlya Bakulin 
61029c02a3SIlya Bakulin #endif
62