initial commit, pull in sys/arch/armv7/omap
[bbb-pru.git] / sitara_cm.h
... / ...
CommitLineData
1/* $OpenBSD: sitara_cm.h,v 1.1 2013/09/04 14:38:32 patrick Exp $ */
2/* $NetBSD: sitara_cm.h,v 1.1 2013/04/17 14:31:02 bouyer Exp $ */
3/*
4 * Copyright (c) 2010
5 * Ben Gray <ben.r.gray@gmail.com>.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by Ben Gray.
19 * 4. The name of the company nor the name of the author may be used to
20 * endorse or promote products derived from this software without specific
21 * prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY BEN GRAY ``AS IS'' AND ANY EXPRESS OR
24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26 * IN NO EVENT SHALL BEN GRAY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
29 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
31 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
32 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
35
36
37/**
38 * Functions to configure the PIN multiplexing on the chip.
39 *
40 * This is different from the GPIO module in that it is used to configure the
41 * pins between modules not just GPIO input output.
42 *
43 */
44#ifndef _OMAP_SCM_H_
45#define _OMAP_SCM_H_
46
47struct sitara_cm_padconf {
48 uint16_t reg_off;
49 uint16_t gpio_pin;
50 uint16_t gpio_mode;
51 const char *ballname;
52 const char *muxmodes[8];
53};
54
55struct sitara_cm_padstate {
56 const char *state;
57 uint16_t reg;
58};
59
60struct sitara_cm_device {
61 uint16_t padconf_muxmode_mask;
62 uint16_t padconf_sate_mask;
63 struct sitara_cm_padstate *padstate;
64 struct sitara_cm_padconf *padconf;
65};
66
67int sitara_cm_padconf_set(const char *padname, const char *muxmode,
68 unsigned int state);
69int sitara_cm_padconf_get(const char *padname, const char **muxmode,
70 unsigned int *state);
71int sitara_cm_padconf_set_gpiomode(uint32_t gpio, unsigned int state);
72int sitara_cm_padconf_get_gpiomode(uint32_t gpio, unsigned int *state);
73int sitara_cm_padconf_set_gpioflags(uint32_t gpio, uint32_t flags);
74void sitara_cm_padconf_get_gpioflags(uint32_t gpio, uint32_t *flags);
75int sitara_cm_reg_read_4(uint32_t reg, uint32_t *val);
76int sitara_cm_reg_write_4(uint32_t reg, uint32_t val);
77
78#endif /* _OMAP_SCM_H_ */