1256959Sloos/*- 2256959Sloos * Copyright (c) 2012 Oleksandr Tymoshenko <gonzo@freebsd.org> 3256959Sloos * Copyright (c) 2013 Luiz Otavio O Souza <loos@freebsd.org> 4256959Sloos * All rights reserved. 5256959Sloos * 6256959Sloos * Redistribution and use in source and binary forms, with or without 7256959Sloos * modification, are permitted provided that the following conditions 8256959Sloos * are met: 9256959Sloos * 1. Redistributions of source code must retain the above copyright 10256959Sloos * notice, this list of conditions and the following disclaimer. 11256959Sloos * 2. Redistributions in binary form must reproduce the above copyright 12256959Sloos * notice, this list of conditions and the following disclaimer in the 13256959Sloos * documentation and/or other materials provided with the distribution. 14256959Sloos * 15256959Sloos * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16256959Sloos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17256959Sloos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18256959Sloos * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19256959Sloos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20256959Sloos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21256959Sloos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22256959Sloos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23256959Sloos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24256959Sloos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25256959Sloos * SUCH DAMAGE. 26256959Sloos * 27256959Sloos * $FreeBSD: releng/10.3/sys/arm/broadcom/bcm2835/bcm2835_bscvar.h 278072 2015-02-02 11:12:31Z loos $ 28256959Sloos */ 29256959Sloos 30256959Sloos#ifndef _BCM2835_BSCVAR_H 31256959Sloos#define _BCM2835_BSCVAR_H 32256959Sloos 33256959Sloosstruct { 34256959Sloos uint32_t sda; 35256959Sloos uint32_t scl; 36261078Sloos unsigned long start; 37256959Sloos} bcm_bsc_pins[] = { 38261078Sloos { 0, 1, 0x20205000 }, /* BSC0 GPIO pins and base address. */ 39261078Sloos { 2, 3, 0x20804000 } /* BSC1 GPIO pins and base address. */ 40256959Sloos}; 41256959Sloos 42256959Sloosstruct bcm_bsc_softc { 43256959Sloos device_t sc_dev; 44276872Sloos device_t sc_iicbus; 45256959Sloos struct mtx sc_mtx; 46256959Sloos struct resource * sc_mem_res; 47256959Sloos struct resource * sc_irq_res; 48256959Sloos bus_space_tag_t sc_bst; 49256959Sloos bus_space_handle_t sc_bsh; 50256959Sloos uint16_t sc_resid; 51256959Sloos uint8_t *sc_data; 52256959Sloos uint8_t sc_flags; 53256959Sloos void * sc_intrhand; 54256959Sloos}; 55256959Sloos 56256959Sloos#define BCM_I2C_BUSY 0x01 57256959Sloos#define BCM_I2C_READ 0x02 58256959Sloos#define BCM_I2C_ERROR 0x04 59256959Sloos 60256959Sloos#define BCM_BSC_WRITE(_sc, _off, _val) \ 61278072Sloos bus_space_write_4((_sc)->sc_bst, (_sc)->sc_bsh, _off, _val) 62256959Sloos#define BCM_BSC_READ(_sc, _off) \ 63278072Sloos bus_space_read_4((_sc)->sc_bst, (_sc)->sc_bsh, _off) 64256959Sloos 65256959Sloos#define BCM_BSC_LOCK(_sc) \ 66256959Sloos mtx_lock(&(_sc)->sc_mtx) 67256959Sloos#define BCM_BSC_UNLOCK(_sc) \ 68256959Sloos mtx_unlock(&(_sc)->sc_mtx) 69256959Sloos 70256959Sloos#endif /* _BCM2835_BSCVAR_H_ */ 71