1 /*
2  * Copyright 2013 Broadcom Corporation.
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #ifndef __BCM23550_W1D_H
8 #define __BCM23550_W1D_H
9 
10 #include <linux/sizes.h>
11 #include <asm/arch/sysmap.h>
12 
13 /* CPU, chip, mach, etc */
14 #define CONFIG_KONA
15 #define CONFIG_SKIP_LOWLEVEL_INIT
16 #define CONFIG_KONA_RESET_S
17 
18 /*
19  * Memory configuration
20  */
21 #define CONFIG_SYS_TEXT_BASE		0x9f000000
22 
23 #define CONFIG_SYS_SDRAM_BASE		0x80000000
24 #define CONFIG_SYS_SDRAM_SIZE		0x20000000
25 #define CONFIG_NR_DRAM_BANKS		1
26 
27 #define CONFIG_SYS_MALLOC_LEN		SZ_4M	/* see armv7/start.S. */
28 #define CONFIG_STACKSIZE		SZ_256K
29 
30 /* GPIO Driver */
31 #define CONFIG_KONA_GPIO
32 
33 /* MMC/SD Driver */
34 #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
35 #define CONFIG_SYS_SDIO_BASE1 SDIO2_BASE_ADDR
36 #define CONFIG_SYS_SDIO_BASE2 SDIO3_BASE_ADDR
37 #define CONFIG_SYS_SDIO_BASE3 SDIO4_BASE_ADDR
38 #define CONFIG_SYS_SDIO0_MAX_CLK 48000000
39 #define CONFIG_SYS_SDIO1_MAX_CLK 48000000
40 #define CONFIG_SYS_SDIO2_MAX_CLK 48000000
41 #define CONFIG_SYS_SDIO3_MAX_CLK 48000000
42 #define CONFIG_SYS_SDIO0 "sdio1"
43 #define CONFIG_SYS_SDIO1 "sdio2"
44 #define CONFIG_SYS_SDIO2 "sdio3"
45 #define CONFIG_SYS_SDIO3 "sdio4"
46 
47 /* I2C Driver */
48 #define CONFIG_SYS_I2C
49 #define CONFIG_SYS_I2C_KONA
50 #define CONFIG_SYS_SPD_BUS_NUM	3	/* Start with PMU bus */
51 #define CONFIG_SYS_MAX_I2C_BUS	4
52 #define CONFIG_SYS_I2C_BASE0	BSC1_BASE_ADDR
53 #define CONFIG_SYS_I2C_BASE1	BSC2_BASE_ADDR
54 #define CONFIG_SYS_I2C_BASE2	BSC3_BASE_ADDR
55 #define CONFIG_SYS_I2C_BASE3	PMU_BSC_BASE_ADDR
56 
57 /* Timer Driver */
58 #define CONFIG_SYS_TIMER_RATE		32000
59 #define CONFIG_SYS_TIMER_COUNTER	(TIMER_BASE_ADDR + 4) /* STCLO offset */
60 
61 /* Init functions */
62 #define CONFIG_MISC_INIT_R	/* board's misc_init_r function */
63 
64 /* Some commands use this as the default load address */
65 #define CONFIG_SYS_LOAD_ADDR		CONFIG_SYS_SDRAM_BASE
66 
67 /* No mtest functions as recommended */
68 
69 /*
70  * This is the initial SP which is used only briefly for relocating the u-boot
71  * image to the top of SDRAM. After relocation u-boot moves the stack to the
72  * proper place.
73  */
74 #define CONFIG_SYS_INIT_SP_ADDR		CONFIG_SYS_TEXT_BASE
75 
76 /* Serial Info */
77 #define CONFIG_SYS_NS16550_SERIAL
78 /* Post pad 3 bytes after each reg addr */
79 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
80 #define CONFIG_SYS_NS16550_CLK		13000000
81 #define CONFIG_CONS_INDEX		1
82 #define CONFIG_SYS_NS16550_COM1		0x3e000000
83 
84 /* must fit into GPT:u-boot-env partition */
85 #define CONFIG_ENV_IS_IN_MMC
86 #define CONFIG_SYS_MMC_ENV_DEV		0
87 #define CONFIG_ENV_OFFSET		(0x00011a00 * 512)
88 #define CONFIG_ENV_SIZE			(8 * 512)
89 
90 /* console configuration */
91 #define CONFIG_SYS_CBSIZE		1024	/* Console buffer size */
92 #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
93 			sizeof(CONFIG_SYS_PROMPT) + 16)	/* Printbuffer size */
94 #define CONFIG_SYS_MAXARGS		64
95 #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
96 
97 /*
98  * One partition type must be defined for part.c
99  * This is necessary for the fatls command to work on an SD card
100  * for example.
101  */
102 
103 /* version string, parser, etc */
104 #define CONFIG_AUTO_COMPLETE
105 #define CONFIG_CMDLINE_EDITING
106 #define CONFIG_SYS_LONGHELP
107 
108 #define CONFIG_CRC32_VERIFY
109 #define CONFIG_MX_CYCLIC
110 
111 /* Initial upstream - boot to cmd prompt only */
112 #define CONFIG_BOOTCOMMAND		""
113 
114 /* Commands */
115 #define CONFIG_FAT_WRITE
116 
117 #undef CONFIG_USB_GADGET_VBUS_DRAW
118 #define CONFIG_USB_GADGET_VBUS_DRAW	0
119 #define CONFIG_USBID_ADDR		0x34052c46
120 
121 #define CONFIG_SYS_ICACHE_OFF
122 #define CONFIG_SYS_DCACHE_OFF
123 #define CONFIG_SYS_L2CACHE_OFF
124 
125 #endif /* __BCM23550_W1D_H */
126