1 /*
2  * Copyright 2013 Broadcom Corporation.
3  *
4  * SPDX-License-Identifier:      GPL-2.0+
5  */
6 
7 #ifndef __BCM28155_AP_H
8 #define __BCM28155_AP_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 
17 /*
18  * Memory configuration
19  */
20 #define CONFIG_SYS_TEXT_BASE		0xae000000
21 
22 #define CONFIG_SYS_SDRAM_BASE		0x80000000
23 #define CONFIG_SYS_SDRAM_SIZE		0x80000000
24 #define CONFIG_NR_DRAM_BANKS		1
25 
26 #define CONFIG_SYS_MALLOC_LEN		SZ_4M	/* see armv7/start.S. */
27 #define CONFIG_STACKSIZE		SZ_256K
28 
29 /* GPIO Driver */
30 #define CONFIG_KONA_GPIO
31 
32 /* MMC/SD Driver */
33 #define CONFIG_SDHCI
34 #define CONFIG_MMC_SDMA
35 #define CONFIG_KONA_SDHCI
36 #define CONFIG_MMC
37 #define CONFIG_GENERIC_MMC
38 
39 #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
40 #define CONFIG_SYS_SDIO_BASE1 SDIO2_BASE_ADDR
41 #define CONFIG_SYS_SDIO_BASE2 SDIO3_BASE_ADDR
42 #define CONFIG_SYS_SDIO_BASE3 SDIO4_BASE_ADDR
43 #define CONFIG_SYS_SDIO0_MAX_CLK 48000000
44 #define CONFIG_SYS_SDIO1_MAX_CLK 48000000
45 #define CONFIG_SYS_SDIO2_MAX_CLK 48000000
46 #define CONFIG_SYS_SDIO3_MAX_CLK 48000000
47 #define CONFIG_SYS_SDIO0 "sdio1"
48 #define CONFIG_SYS_SDIO1 "sdio2"
49 #define CONFIG_SYS_SDIO2 "sdio3"
50 #define CONFIG_SYS_SDIO3 "sdio4"
51 
52 /* I2C Driver */
53 #define CONFIG_SYS_I2C
54 #define CONFIG_SYS_I2C_KONA
55 #define CONFIG_SYS_SPD_BUS_NUM	3	/* Start with PMU bus */
56 #define CONFIG_SYS_MAX_I2C_BUS	4
57 #define CONFIG_SYS_I2C_BASE0	BSC1_BASE_ADDR
58 #define CONFIG_SYS_I2C_BASE1	BSC2_BASE_ADDR
59 #define CONFIG_SYS_I2C_BASE2	BSC3_BASE_ADDR
60 #define CONFIG_SYS_I2C_BASE3	PMU_BSC_BASE_ADDR
61 
62 /* Timer Driver */
63 #define CONFIG_SYS_TIMER_RATE		32000
64 #define CONFIG_SYS_TIMER_COUNTER	(TIMER_BASE_ADDR + 4) /* STCLO offset */
65 
66 /* Init functions */
67 #define CONFIG_MISC_INIT_R	/* board's misc_init_r function */
68 
69 /* Some commands use this as the default load address */
70 #define CONFIG_SYS_LOAD_ADDR		CONFIG_SYS_SDRAM_BASE
71 
72 /* No mtest functions as recommended */
73 
74 /*
75  * This is the initial SP which is used only briefly for relocating the u-boot
76  * image to the top of SDRAM. After relocation u-boot moves the stack to the
77  * proper place.
78  */
79 #define CONFIG_SYS_INIT_SP_ADDR		CONFIG_SYS_TEXT_BASE
80 
81 /* Serial Info */
82 #define CONFIG_SYS_NS16550
83 #define CONFIG_SYS_NS16550_SERIAL
84 /* Post pad 3 bytes after each reg addr */
85 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
86 #define CONFIG_SYS_NS16550_CLK		13000000
87 #define CONFIG_CONS_INDEX		1
88 #define CONFIG_SYS_NS16550_COM1		0x3e000000
89 
90 #define CONFIG_BAUDRATE			115200
91 
92 #define CONFIG_ENV_SIZE			0x10000
93 #define CONFIG_ENV_IS_NOWHERE
94 
95 #define CONFIG_SYS_NO_FLASH	/* Not using NAND/NOR unmanaged flash */
96 
97 /* console configuration */
98 #define CONFIG_SYS_CBSIZE		1024	/* Console buffer size */
99 #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
100 			sizeof(CONFIG_SYS_PROMPT) + 16)	/* Printbuffer size */
101 #define CONFIG_SYS_MAXARGS		64
102 #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
103 
104 /*
105  * One partition type must be defined for part.c
106  * This is necessary for the fatls command to work on an SD card
107  * for example.
108  */
109 #define CONFIG_DOS_PARTITION
110 #define CONFIG_EFI_PARTITION
111 
112 /* version string, parser, etc */
113 #define CONFIG_VERSION_VARIABLE
114 #define CONFIG_AUTO_COMPLETE
115 #define CONFIG_SYS_HUSH_PARSER
116 #define CONFIG_CMDLINE_EDITING
117 #define CONFIG_SYS_LONGHELP
118 
119 #define CONFIG_CRC32_VERIFY
120 #define CONFIG_MX_CYCLIC
121 
122 /* Initial upstream - boot to cmd prompt only */
123 #define CONFIG_BOOTCOMMAND		""
124 
125 /* Commands */
126 #define CONFIG_CMD_ASKENV
127 #define CONFIG_CMD_CACHE
128 #define CONFIG_CMD_FAT
129 #define CONFIG_CMD_GPIO
130 #define CONFIG_CMD_I2C
131 #define CONFIG_CMD_MMC
132 #define CONFIG_CMD_BOOTZ
133 #define CONFIG_FAT_WRITE
134 
135 
136 /* Fastboot and USB OTG */
137 #define CONFIG_USB_FUNCTION_FASTBOOT
138 #define CONFIG_CMD_FASTBOOT
139 #define CONFIG_FASTBOOT_FLASH
140 #define CONFIG_FASTBOOT_FLASH_MMC_DEV	0
141 #define CONFIG_SYS_CACHELINE_SIZE	64
142 #define CONFIG_FASTBOOT_BUF_SIZE	(CONFIG_SYS_SDRAM_SIZE - SZ_1M)
143 #define CONFIG_FASTBOOT_BUF_ADDR	CONFIG_SYS_SDRAM_BASE
144 #define CONFIG_USB_GADGET
145 #define CONFIG_USB_GADGET_DUALSPEED
146 #define CONFIG_USB_GADGET_VBUS_DRAW	0
147 #define CONFIG_USB_GADGET_S3C_UDC_OTG
148 #define CONFIG_USB_GADGET_BCM_UDC_OTG_PHY
149 #define CONFIG_USB_GADGET_DOWNLOAD
150 #define CONFIG_USBID_ADDR		0x34052c46
151 #define CONFIG_G_DNL_VENDOR_NUM		0x18d1	/* google */
152 #define CONFIG_G_DNL_PRODUCT_NUM	0x0d02	/* nexus one */
153 #define CONFIG_G_DNL_MANUFACTURER	"Broadcom Corporation"
154 
155 /* Fastboot and USB OTG */
156 #define CONFIG_USB_FUNCTION_FASTBOOT
157 #define CONFIG_CMD_FASTBOOT
158 #define CONFIG_FASTBOOT_FLASH
159 #define CONFIG_FASTBOOT_FLASH_MMC_DEV	0
160 #define CONFIG_SYS_CACHELINE_SIZE	64
161 #define CONFIG_USB_FASTBOOT_BUF_SIZE	(CONFIG_SYS_SDRAM_SIZE - SZ_1M)
162 #define CONFIG_USB_FASTBOOT_BUF_ADDR	CONFIG_SYS_SDRAM_BASE
163 #define CONFIG_USB_GADGET
164 #define CONFIG_USB_GADGET_DUALSPEED
165 #define CONFIG_USB_GADGET_VBUS_DRAW	0
166 #define CONFIG_USB_GADGET_S3C_UDC_OTG
167 #define CONFIG_USB_GADGET_BCM_UDC_OTG_PHY
168 #define CONFIG_USB_GADGET_DOWNLOAD
169 #define CONFIG_USBID_ADDR		0x34052c46
170 #define CONFIG_G_DNL_VENDOR_NUM		0x18d1	/* google */
171 #define CONFIG_G_DNL_PRODUCT_NUM	0x0d02	/* nexus one */
172 #define CONFIG_G_DNL_MANUFACTURER	"Broadcom Corporation"
173 
174 #endif /* __BCM28155_AP_H */
175