xref: /rk3399_rockchip-uboot/board/ti/ti814x/mux.c (revision cac423a730d3506154744485af1bbc1cd3a1e6a8)
1ea7b96b6SMatt Porter /*
2ea7b96b6SMatt Porter  * mux.c
3ea7b96b6SMatt Porter  *
4ea7b96b6SMatt Porter  * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
5ea7b96b6SMatt Porter  *
6ea7b96b6SMatt Porter  * This program is free software; you can redistribute it and/or
7ea7b96b6SMatt Porter  * modify it under the terms of the GNU General Public License as
8ea7b96b6SMatt Porter  * published by the Free Software Foundation version 2.
9ea7b96b6SMatt Porter  *
10ea7b96b6SMatt Porter  * This program is distributed "as is" WITHOUT ANY WARRANTY of any
11ea7b96b6SMatt Porter  * kind, whether express or implied; without even the implied warranty
12ea7b96b6SMatt Porter  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13ea7b96b6SMatt Porter  * GNU General Public License for more details.
14ea7b96b6SMatt Porter  */
15ea7b96b6SMatt Porter 
16ea7b96b6SMatt Porter #include <common.h>
17ea7b96b6SMatt Porter #include <asm/arch/sys_proto.h>
18ea7b96b6SMatt Porter #include <asm/arch/hardware.h>
19ea7b96b6SMatt Porter #include <asm/arch/mux.h>
20ea7b96b6SMatt Porter #include <asm/io.h>
21ea7b96b6SMatt Porter #include <i2c.h>
22ea7b96b6SMatt Porter #include "evm.h"
23ea7b96b6SMatt Porter 
24ea7b96b6SMatt Porter static struct module_pin_mux uart0_pin_mux[] = {
25ea7b96b6SMatt Porter 	{OFFSET(pincntl70), PULLUP_EN | MODE(0x01)},	/* UART0_RXD */
26ea7b96b6SMatt Porter 	{OFFSET(pincntl71), PULLUP_EN | MODE(0x01)},	/* UART0_TXD */
27ea7b96b6SMatt Porter 	{-1},
28ea7b96b6SMatt Porter };
29ea7b96b6SMatt Porter 
30ea7b96b6SMatt Porter static struct module_pin_mux mmc1_pin_mux[] = {
31ea7b96b6SMatt Porter 	{OFFSET(pincntl1), PULLUP_EN | MODE(0x01)},	/* SD1_CLK */
32ea7b96b6SMatt Porter 	{OFFSET(pincntl2), PULLUP_EN | MODE(0x01)},	/* SD1_CMD */
33ea7b96b6SMatt Porter 	{OFFSET(pincntl3), PULLUP_EN | MODE(0x01)},	/* SD1_DAT[0] */
34ea7b96b6SMatt Porter 	{OFFSET(pincntl4), PULLUP_EN | MODE(0x01)},	/* SD1_DAT[1] */
35ea7b96b6SMatt Porter 	{OFFSET(pincntl5), PULLUP_EN | MODE(0x01)},	/* SD1_DAT[2] */
36ea7b96b6SMatt Porter 	{OFFSET(pincntl6), PULLUP_EN | MODE(0x01)},	/* SD1_DAT[3] */
37ea7b96b6SMatt Porter 	{OFFSET(pincntl74), PULLUP_EN | MODE(0x40)},	/* SD1_POW */
38ea7b96b6SMatt Porter 	{OFFSET(pincntl75), MODE(0x40)},		/* SD1_SDWP */
39ea7b96b6SMatt Porter 	{OFFSET(pincntl80), PULLUP_EN | MODE(0x02)},	/* SD1_SDCD */
40ea7b96b6SMatt Porter 	{-1},
41ea7b96b6SMatt Porter };
42ea7b96b6SMatt Porter 
43*cd87464dSMatt Porter static struct module_pin_mux enet_pin_mux[] = {
44*cd87464dSMatt Porter 	{OFFSET(pincntl232), MODE(0x01)},		/* EMAC_RMREFCLK */
45*cd87464dSMatt Porter 	{OFFSET(pincntl233), PULLUP_EN | MODE(0x01)},	/* MDCLK */
46*cd87464dSMatt Porter 	{OFFSET(pincntl234), PULLUP_EN | MODE(0x01)},	/* MDIO */
47*cd87464dSMatt Porter 	{OFFSET(pincntl235), MODE(0x01)},		/* EMAC[0]_MTCLK */
48*cd87464dSMatt Porter 	{OFFSET(pincntl236), MODE(0x01)},		/* EMAC[0]_MCOL */
49*cd87464dSMatt Porter 	{OFFSET(pincntl237), MODE(0x01)},		/* EMAC[0]_MCRS */
50*cd87464dSMatt Porter 	{OFFSET(pincntl238), MODE(0x01)},		/* EMAC[0]_MRXER */
51*cd87464dSMatt Porter 	{OFFSET(pincntl239), MODE(0x01)},		/* EMAC[0]_MRCLK */
52*cd87464dSMatt Porter 	{OFFSET(pincntl240), MODE(0x01)},		/* EMAC[0]_MRXD[0] */
53*cd87464dSMatt Porter 	{OFFSET(pincntl241), MODE(0x01)},		/* EMAC[0]_MRXD[1] */
54*cd87464dSMatt Porter 	{OFFSET(pincntl242), MODE(0x01)},		/* EMAC[0]_MRXD[2] */
55*cd87464dSMatt Porter 	{OFFSET(pincntl243), MODE(0x01)},		/* EMAC[0]_MRXD[3] */
56*cd87464dSMatt Porter 	{OFFSET(pincntl244), MODE(0x01)},		/* EMAC[0]_MRXD[4] */
57*cd87464dSMatt Porter 	{OFFSET(pincntl245), MODE(0x01)},		/* EMAC[0]_MRXD[5] */
58*cd87464dSMatt Porter 	{OFFSET(pincntl246), MODE(0x01)},		/* EMAC[0]_MRXD[6] */
59*cd87464dSMatt Porter 	{OFFSET(pincntl247), MODE(0x01)},		/* EMAC[0]_MRXD[7] */
60*cd87464dSMatt Porter 	{OFFSET(pincntl248), MODE(0x01)},		/* EMAC[0]_MRXDV */
61*cd87464dSMatt Porter 	{OFFSET(pincntl249), MODE(0x01)},		/* EMAC[0]_GMTCLK */
62*cd87464dSMatt Porter 	{OFFSET(pincntl250), MODE(0x01)},		/* EMAC[0]_MTXD[0] */
63*cd87464dSMatt Porter 	{OFFSET(pincntl251), MODE(0x01)},		/* EMAC[0]_MTXD[1] */
64*cd87464dSMatt Porter 	{OFFSET(pincntl252), MODE(0x01)},		/* EMAC[0]_MTXD[2] */
65*cd87464dSMatt Porter 	{OFFSET(pincntl253), MODE(0x01)},		/* EMAC[0]_MTXD[3] */
66*cd87464dSMatt Porter 	{OFFSET(pincntl254), MODE(0x01)},		/* EMAC[0]_MTXD[4] */
67*cd87464dSMatt Porter 	{OFFSET(pincntl255), MODE(0x01)},		/* EMAC[0]_MTXD[5] */
68*cd87464dSMatt Porter 	{OFFSET(pincntl256), MODE(0x01)},		/* EMAC[0]_MTXD[6] */
69*cd87464dSMatt Porter 	{OFFSET(pincntl257), MODE(0x01)},		/* EMAC[0]_MTXD[7] */
70*cd87464dSMatt Porter 	{OFFSET(pincntl258), MODE(0x01)},		/* EMAC[0]_MTXEN */
71*cd87464dSMatt Porter };
72*cd87464dSMatt Porter 
enable_uart0_pin_mux(void)73ea7b96b6SMatt Porter void enable_uart0_pin_mux(void)
74ea7b96b6SMatt Porter {
75ea7b96b6SMatt Porter 	configure_module_pin_mux(uart0_pin_mux);
76ea7b96b6SMatt Porter }
77ea7b96b6SMatt Porter 
enable_mmc1_pin_mux(void)78ea7b96b6SMatt Porter void enable_mmc1_pin_mux(void)
79ea7b96b6SMatt Porter {
80ea7b96b6SMatt Porter 	configure_module_pin_mux(mmc1_pin_mux);
81ea7b96b6SMatt Porter }
82*cd87464dSMatt Porter 
enable_enet_pin_mux(void)83*cd87464dSMatt Porter void enable_enet_pin_mux(void)
84*cd87464dSMatt Porter {
85*cd87464dSMatt Porter 	configure_module_pin_mux(enet_pin_mux);
86*cd87464dSMatt Porter }
87