107897970SLuiz Otavio O Souza /*- 24d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3af3dc4a7SPedro F. Giffuni * 407897970SLuiz Otavio O Souza * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@freebsd.org> 507897970SLuiz Otavio O Souza * Copyright (c) 2013 Luiz Otavio O Souza <loos@freebsd.org> 607897970SLuiz Otavio O Souza * All rights reserved. 707897970SLuiz Otavio O Souza * 807897970SLuiz Otavio O Souza * Redistribution and use in source and binary forms, with or without 907897970SLuiz Otavio O Souza * modification, are permitted provided that the following conditions 1007897970SLuiz Otavio O Souza * are met: 1107897970SLuiz Otavio O Souza * 1. Redistributions of source code must retain the above copyright 1207897970SLuiz Otavio O Souza * notice, this list of conditions and the following disclaimer. 1307897970SLuiz Otavio O Souza * 2. Redistributions in binary form must reproduce the above copyright 1407897970SLuiz Otavio O Souza * notice, this list of conditions and the following disclaimer in the 1507897970SLuiz Otavio O Souza * documentation and/or other materials provided with the distribution. 1607897970SLuiz Otavio O Souza * 1707897970SLuiz Otavio O Souza * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1807897970SLuiz Otavio O Souza * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1907897970SLuiz Otavio O Souza * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2007897970SLuiz Otavio O Souza * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2107897970SLuiz Otavio O Souza * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2207897970SLuiz Otavio O Souza * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2307897970SLuiz Otavio O Souza * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2407897970SLuiz Otavio O Souza * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2507897970SLuiz Otavio O Souza * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2607897970SLuiz Otavio O Souza * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2707897970SLuiz Otavio O Souza * SUCH DAMAGE. 2807897970SLuiz Otavio O Souza */ 2907897970SLuiz Otavio O Souza 3007897970SLuiz Otavio O Souza #ifndef _BCM2835_SPIVAR_H_ 3107897970SLuiz Otavio O Souza #define _BCM2835_SPIVAR_H_ 3207897970SLuiz Otavio O Souza 3307897970SLuiz Otavio O Souza struct bcm_spi_softc { 3407897970SLuiz Otavio O Souza device_t sc_dev; 3507897970SLuiz Otavio O Souza struct mtx sc_mtx; 3607897970SLuiz Otavio O Souza struct resource * sc_mem_res; 3707897970SLuiz Otavio O Souza struct resource * sc_irq_res; 3807897970SLuiz Otavio O Souza struct spi_command *sc_cmd; 39*8ef8939fSJustin Hibbits struct thread *sc_thread; 4007897970SLuiz Otavio O Souza bus_space_tag_t sc_bst; 4107897970SLuiz Otavio O Souza bus_space_handle_t sc_bsh; 4207897970SLuiz Otavio O Souza uint32_t sc_len; 4307897970SLuiz Otavio O Souza uint32_t sc_read; 4407897970SLuiz Otavio O Souza uint32_t sc_flags; 4507897970SLuiz Otavio O Souza uint32_t sc_written; 4607897970SLuiz Otavio O Souza void * sc_intrhand; 4707897970SLuiz Otavio O Souza }; 4807897970SLuiz Otavio O Souza 4907897970SLuiz Otavio O Souza #define BCM_SPI_BUSY 0x1 50*8ef8939fSJustin Hibbits #define BCM_SPI_KEEP_CS 0x2 5107897970SLuiz Otavio O Souza 5207897970SLuiz Otavio O Souza #define BCM_SPI_WRITE(_sc, _off, _val) \ 5307897970SLuiz Otavio O Souza bus_space_write_4(_sc->sc_bst, _sc->sc_bsh, _off, _val) 5407897970SLuiz Otavio O Souza #define BCM_SPI_READ(_sc, _off) \ 5507897970SLuiz Otavio O Souza bus_space_read_4(_sc->sc_bst, _sc->sc_bsh, _off) 5607897970SLuiz Otavio O Souza 5707897970SLuiz Otavio O Souza #define BCM_SPI_LOCK(_sc) \ 5807897970SLuiz Otavio O Souza mtx_lock(&(_sc)->sc_mtx) 5907897970SLuiz Otavio O Souza #define BCM_SPI_UNLOCK(_sc) \ 6007897970SLuiz Otavio O Souza mtx_unlock(&(_sc)->sc_mtx) 6107897970SLuiz Otavio O Souza 6207897970SLuiz Otavio O Souza #endif /* _BCM2835_SPIVAR_H_ */ 63