xref: /rk3399_rockchip-uboot/arch/arm/mach-davinci/include/mach/davinci_misc.h (revision 89f5eaa1ee9a3307e05458aa4f3b2155ab0a7144)
13d357619SMasahiro Yamada /*
23d357619SMasahiro Yamada  * Copyright (C) 2008 Lyrtech <www.lyrtech.com>
33d357619SMasahiro Yamada  *
43d357619SMasahiro Yamada  * SPDX-License-Identifier:	GPL-2.0+
53d357619SMasahiro Yamada  */
63d357619SMasahiro Yamada 
73d357619SMasahiro Yamada #ifndef __MISC_H
83d357619SMasahiro Yamada #define __MISC_H
93d357619SMasahiro Yamada 
10*89f5eaa1SSimon Glass #include <asm/arch/hardware.h>
11*89f5eaa1SSimon Glass 
123d357619SMasahiro Yamada /* pin muxer definitions */
133d357619SMasahiro Yamada #define PIN_MUX_NUM_FIELDS	8	/* Per register */
143d357619SMasahiro Yamada #define PIN_MUX_FIELD_SIZE	4	/* n in bits */
153d357619SMasahiro Yamada #define PIN_MUX_FIELD_MASK	((1 << PIN_MUX_FIELD_SIZE) - 1)
163d357619SMasahiro Yamada 
173d357619SMasahiro Yamada /* pin definition */
183d357619SMasahiro Yamada struct pinmux_config {
193d357619SMasahiro Yamada 	dv_reg		*mux;		/* Address of mux register */
203d357619SMasahiro Yamada 	unsigned char	value;		/* Value to set in field */
213d357619SMasahiro Yamada 	unsigned char	field;		/* field number */
223d357619SMasahiro Yamada };
233d357619SMasahiro Yamada 
243d357619SMasahiro Yamada /* pin table definition */
253d357619SMasahiro Yamada struct pinmux_resource {
263d357619SMasahiro Yamada 	const struct pinmux_config	*pins;
273d357619SMasahiro Yamada 	const int 			n_pins;
283d357619SMasahiro Yamada };
293d357619SMasahiro Yamada 
303d357619SMasahiro Yamada #define PINMUX_ITEM(item) { \
313d357619SMasahiro Yamada 				.pins = item, \
323d357619SMasahiro Yamada 				.n_pins = ARRAY_SIZE(item) \
333d357619SMasahiro Yamada 			  }
343d357619SMasahiro Yamada 
353d357619SMasahiro Yamada struct lpsc_resource {
363d357619SMasahiro Yamada 	const int	lpsc_no;
373d357619SMasahiro Yamada };
383d357619SMasahiro Yamada 
393d357619SMasahiro Yamada int dvevm_read_mac_address(uint8_t *buf);
403d357619SMasahiro Yamada void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr);
413d357619SMasahiro Yamada int davinci_configure_pin_mux(const struct pinmux_config *pins, int n_pins);
423d357619SMasahiro Yamada int davinci_configure_pin_mux_items(const struct pinmux_resource *item,
433d357619SMasahiro Yamada 				    int n_items);
443d357619SMasahiro Yamada #if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_SOC_DA8XX)
453d357619SMasahiro Yamada void davinci_emac_mii_mode_sel(int mode_sel);
463d357619SMasahiro Yamada #endif
473d357619SMasahiro Yamada #if defined(CONFIG_SOC_DA8XX)
483d357619SMasahiro Yamada void irq_init(void);
493d357619SMasahiro Yamada int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
503d357619SMasahiro Yamada 				    const int n_items);
513d357619SMasahiro Yamada #endif
523d357619SMasahiro Yamada 
533d357619SMasahiro Yamada #endif /* __MISC_H */
54