1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef BOARD_BCM963XX_H_
3 #define BOARD_BCM963XX_H_
4 
5 #include <linux/types.h>
6 #include <linux/gpio.h>
7 #include <linux/leds.h>
8 #include <bcm63xx_dev_enet.h>
9 #include <bcm63xx_dev_usb_usbd.h>
10 
11 /*
12  * flash mapping
13  */
14 #define BCM963XX_CFE_VERSION_OFFSET	0x570
15 #define BCM963XX_NVRAM_OFFSET		0x580
16 
17 /*
18  * board definition
19  */
20 struct board_info {
21 	u8		name[16];
22 	unsigned int	expected_cpu_id;
23 
24 	/* enabled feature/device */
25 	unsigned int	has_enet0:1;
26 	unsigned int	has_enet1:1;
27 	unsigned int	has_enetsw:1;
28 	unsigned int	has_pci:1;
29 	unsigned int	has_pccard:1;
30 	unsigned int	has_ohci0:1;
31 	unsigned int	has_ehci0:1;
32 	unsigned int	has_usbd:1;
33 	unsigned int	has_uart0:1;
34 	unsigned int	has_uart1:1;
35 
36 	/* ethernet config */
37 	struct bcm63xx_enet_platform_data enet0;
38 	struct bcm63xx_enet_platform_data enet1;
39 	struct bcm63xx_enetsw_platform_data enetsw;
40 
41 	/* USB config */
42 	struct bcm63xx_usbd_platform_data usbd;
43 
44 	/* GPIO LEDs */
45 	struct gpio_led leds[5];
46 
47 	/* External PHY reset GPIO */
48 	unsigned int ephy_reset_gpio;
49 
50 	/* External PHY reset GPIO flags from gpio.h */
51 	unsigned long ephy_reset_gpio_flags;
52 };
53 
54 #endif /* ! BOARD_BCM963XX_H_ */
55