blob: cbac8031b450d5ddcef1b41dede9fea85ed5420a [file] [log] [blame]
Hugo Villeneuve4e352ef2008-07-11 15:10:13 -04001/*
2 * Copyright (C) 2008 Lyrtech <www.lyrtech.com>
3 *
4 * See file CREDITS for list of people who contributed to this
5 * project.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */
21
22#ifndef __MISC_H
23#define __MISC_H
24
Nick Thompson68bfdc82009-11-12 11:03:23 -050025/* pin muxer definitions */
26#define PIN_MUX_NUM_FIELDS 8 /* Per register */
27#define PIN_MUX_FIELD_SIZE 4 /* n in bits */
28#define PIN_MUX_FIELD_MASK ((1 << PIN_MUX_FIELD_SIZE) - 1)
29
30/* pin definition */
31struct pinmux_config {
32 dv_reg *mux; /* Address of mux register */
33 unsigned char value; /* Value to set in field */
34 unsigned char field; /* field number */
35};
Hugo Villeneuve4e352ef2008-07-11 15:10:13 -040036
Nick Thompsonced18552009-12-12 12:10:51 -050037/* pin table definition */
38struct pinmux_resource {
39 const struct pinmux_config *pins;
40 const int n_pins;
41};
42
43#define PINMUX_ITEM(item) { \
44 .pins = item, \
45 .n_pins = ARRAY_SIZE(item) \
46 }
47
Stefano Babic6470f732010-11-30 11:32:10 -050048struct lpsc_resource {
49 const int lpsc_no;
50};
51
Hugo Villeneuve4e352ef2008-07-11 15:10:13 -040052int dvevm_read_mac_address(uint8_t *buf);
Ben Gardiner1fb49e32010-09-23 09:58:43 -040053void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr);
Nick Thompson68bfdc82009-11-12 11:03:23 -050054int davinci_configure_pin_mux(const struct pinmux_config *pins, int n_pins);
Nick Thompsonced18552009-12-12 12:10:51 -050055int davinci_configure_pin_mux_items(const struct pinmux_resource *item,
56 int n_items);
Laurence Withersb2c2c632011-07-18 09:53:14 -040057#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_SOC_DA8XX)
Stefano Babic6470f732010-11-30 11:32:10 -050058void davinci_emac_mii_mode_sel(int mode_sel);
59#endif
60#if defined(CONFIG_SOC_DA8XX)
61void irq_init(void);
62int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
63 const int n_items);
64#endif
Hugo Villeneuve4e352ef2008-07-11 15:10:13 -040065
66#endif /* __MISC_H */