lpcvar.h revision 285830
1/*- 2 * Copyright (c) 2011 Jakub Wojciech Klama <jceel@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD: releng/10.2/sys/arm/lpc/lpcvar.h 239278 2012-08-15 05:37:10Z gonzo $ 27 */ 28 29#ifndef _ARM_LPC_LPCVAR_H 30#define _ARM_LPC_LPCVAR_H 31 32#include <sys/types.h> 33#include <sys/bus.h> 34#include <machine/bus.h> 35 36/* Clocking and power control */ 37uint32_t lpc_pwr_read(device_t, int); 38void lpc_pwr_write(device_t, int, uint32_t); 39 40/* GPIO */ 41void platform_gpio_init(void); 42int lpc_gpio_set_flags(device_t, int, int); 43int lpc_gpio_set_state(device_t, int, int); 44int lpc_gpio_get_state(device_t, int, int *); 45 46/* DMA */ 47struct lpc_dmac_channel_config 48{ 49 int ldc_fcntl; 50 int ldc_src_periph; 51 int ldc_src_width; 52 int ldc_src_incr; 53 int ldc_src_burst; 54 int ldc_dst_periph; 55 int ldc_dst_width; 56 int ldc_dst_incr; 57 int ldc_dst_burst; 58 void (*ldc_success_handler)(void *); 59 void (*ldc_error_handler)(void *); 60 void * ldc_handler_arg; 61}; 62 63int lpc_dmac_config_channel(device_t, int, struct lpc_dmac_channel_config *); 64int lpc_dmac_setup_transfer(device_t, int, bus_addr_t, bus_addr_t, bus_size_t, int); 65int lpc_dmac_enable_channel(device_t, int); 66int lpc_dmac_disable_channel(device_t, int); 67int lpc_dmac_start_burst(device_t, int); 68 69#endif /* _ARM_LPC_LPCVAR_H */ 70