blob: d8bf87258b5d2ec07227ddd1b815dfced2ccad5f [file] [log] [blame]
Peter Korsgaard7f26a5a2012-10-18 01:21:11 +00001/*
2 * mux.h
3 *
Matt Porterb2e682f2013-03-15 10:07:05 +00004 * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
Peter Korsgaard7f26a5a2012-10-18 01:21:11 +00005 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation version 2.
9 *
10 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
11 * kind, whether express or implied; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#ifndef _MUX_H_
17#define _MUX_H_
18
19#include <common.h>
20#include <asm/io.h>
21
Matt Porterb2e682f2013-03-15 10:07:05 +000022#ifdef CONFIG_AM33XX
23#include <asm/arch/mux_am33xx.h>
24#elif defined(CONFIG_TI814X)
25#include <asm/arch/mux_ti814x.h>
TENART Antoinedcf846d2013-07-02 12:05:59 +020026#elif defined(CONFIG_TI816X)
27#include <asm/arch/mux_ti816x.h>
Lokesh Vutlac06e4982013-07-30 11:36:28 +053028#elif defined(CONFIG_AM43XX)
29#include <asm/arch/mux_am43xx.h>
Matt Porterb2e682f2013-03-15 10:07:05 +000030#endif
Peter Korsgaard7f26a5a2012-10-18 01:21:11 +000031
32struct module_pin_mux {
33 short reg_offset;
Matt Porterb2e682f2013-03-15 10:07:05 +000034 unsigned int val;
Peter Korsgaard7f26a5a2012-10-18 01:21:11 +000035};
36
37/* Pad control register offset */
38#define PAD_CTRL_BASE 0x800
Igor Grinbergb5ff2052014-10-21 18:25:30 +030039#define OFFSET(x) (unsigned int) (&((struct pad_signals *)\
Peter Korsgaard7f26a5a2012-10-18 01:21:11 +000040 (PAD_CTRL_BASE))->x)
41
42/*
43 * Configure the pin mux for the module
44 */
45void configure_module_pin_mux(struct module_pin_mux *mod_pin_mux);
46
Matt Porterb2e682f2013-03-15 10:07:05 +000047#endif /* endif _MUX_H */