xref: /rk3399_rockchip-uboot/arch/arm/mach-davinci/include/mach/davinci_misc.h (revision 3d357619a509eb2b39dc5056731ca08bc2b23e62)
1*3d357619SMasahiro Yamada /*
2*3d357619SMasahiro Yamada  * Copyright (C) 2008 Lyrtech <www.lyrtech.com>
3*3d357619SMasahiro Yamada  *
4*3d357619SMasahiro Yamada  * SPDX-License-Identifier:	GPL-2.0+
5*3d357619SMasahiro Yamada  */
6*3d357619SMasahiro Yamada 
7*3d357619SMasahiro Yamada #ifndef __MISC_H
8*3d357619SMasahiro Yamada #define __MISC_H
9*3d357619SMasahiro Yamada 
10*3d357619SMasahiro Yamada /* pin muxer definitions */
11*3d357619SMasahiro Yamada #define PIN_MUX_NUM_FIELDS	8	/* Per register */
12*3d357619SMasahiro Yamada #define PIN_MUX_FIELD_SIZE	4	/* n in bits */
13*3d357619SMasahiro Yamada #define PIN_MUX_FIELD_MASK	((1 << PIN_MUX_FIELD_SIZE) - 1)
14*3d357619SMasahiro Yamada 
15*3d357619SMasahiro Yamada /* pin definition */
16*3d357619SMasahiro Yamada struct pinmux_config {
17*3d357619SMasahiro Yamada 	dv_reg		*mux;		/* Address of mux register */
18*3d357619SMasahiro Yamada 	unsigned char	value;		/* Value to set in field */
19*3d357619SMasahiro Yamada 	unsigned char	field;		/* field number */
20*3d357619SMasahiro Yamada };
21*3d357619SMasahiro Yamada 
22*3d357619SMasahiro Yamada /* pin table definition */
23*3d357619SMasahiro Yamada struct pinmux_resource {
24*3d357619SMasahiro Yamada 	const struct pinmux_config	*pins;
25*3d357619SMasahiro Yamada 	const int 			n_pins;
26*3d357619SMasahiro Yamada };
27*3d357619SMasahiro Yamada 
28*3d357619SMasahiro Yamada #define PINMUX_ITEM(item) { \
29*3d357619SMasahiro Yamada 				.pins = item, \
30*3d357619SMasahiro Yamada 				.n_pins = ARRAY_SIZE(item) \
31*3d357619SMasahiro Yamada 			  }
32*3d357619SMasahiro Yamada 
33*3d357619SMasahiro Yamada struct lpsc_resource {
34*3d357619SMasahiro Yamada 	const int	lpsc_no;
35*3d357619SMasahiro Yamada };
36*3d357619SMasahiro Yamada 
37*3d357619SMasahiro Yamada int dvevm_read_mac_address(uint8_t *buf);
38*3d357619SMasahiro Yamada void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr);
39*3d357619SMasahiro Yamada int davinci_configure_pin_mux(const struct pinmux_config *pins, int n_pins);
40*3d357619SMasahiro Yamada int davinci_configure_pin_mux_items(const struct pinmux_resource *item,
41*3d357619SMasahiro Yamada 				    int n_items);
42*3d357619SMasahiro Yamada #if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_SOC_DA8XX)
43*3d357619SMasahiro Yamada void davinci_emac_mii_mode_sel(int mode_sel);
44*3d357619SMasahiro Yamada #endif
45*3d357619SMasahiro Yamada #if defined(CONFIG_SOC_DA8XX)
46*3d357619SMasahiro Yamada void irq_init(void);
47*3d357619SMasahiro Yamada int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
48*3d357619SMasahiro Yamada 				    const int n_items);
49*3d357619SMasahiro Yamada #endif
50*3d357619SMasahiro Yamada 
51*3d357619SMasahiro Yamada #endif /* __MISC_H */
52