2 * Copyright (C) 2016 Piotr Dymacz <piotr@dymacz.pl>
4 * This file contains the configuration parameters
5 * for Qualcomm Atheros AR934x based devices
7 * Reference designs: AP123, MI124, DB120
9 * SPDX-License-Identifier: GPL-2.0
16 #include <configs/qca9k_common.h>
17 #include <soc/soc_common.h>
24 #if defined(CONFIG_FOR_TPLINK_WDR3600_V1) ||\
25 defined(CONFIG_FOR_TPLINK_WDR43X0_V1)
27 #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO11 | GPIO12 | GPIO13 |\
29 #define CONFIG_QCA_GPIO_MASK_OUT GPIO21 | GPIO22 |\
30 CONFIG_QCA_GPIO_MASK_LED_ACT_L
31 #define CONFIG_QCA_GPIO_MASK_IN GPIO16 | GPIO17
32 #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H GPIO21 | GPIO22 |\
33 CONFIG_QCA_GPIO_MASK_LED_ACT_L
35 #elif defined(CONFIG_FOR_TPLINK_WDR3500_V1)
37 #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO11 | GPIO13 | GPIO14 |\
38 GPIO15 | GPIO18 | GPIO19 |\
39 GPIO20 | GPIO21 | GPIO22
40 #define CONFIG_QCA_GPIO_MASK_OUT GPIO12 |\
41 CONFIG_QCA_GPIO_MASK_LED_ACT_L
42 #define CONFIG_QCA_GPIO_MASK_IN GPIO16 | GPIO17
43 #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H GPIO12 |\
44 CONFIG_QCA_GPIO_MASK_LED_ACT_L
46 #elif defined(CONFIG_FOR_TPLINK_MR3420_V2)
48 #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO11 | GPIO12 | GPIO13 |\
49 GPIO14 | GPIO15 | GPIO18 |\
50 GPIO19 | GPIO20 | GPIO21
51 #define CONFIG_QCA_GPIO_MASK_OUT GPIO4 |\
52 CONFIG_QCA_GPIO_MASK_LED_ACT_L
53 #define CONFIG_QCA_GPIO_MASK_IN GPIO16 | GPIO17
54 #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H GPIO4 |\
55 CONFIG_QCA_GPIO_MASK_LED_ACT_L
57 #elif defined(CONFIG_FOR_TPLINK_WR841N_V8)
59 #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO12 | GPIO13 | GPIO14 |\
60 GPIO15 | GPIO18 | GPIO19 |\
62 #define CONFIG_QCA_GPIO_MASK_OUT CONFIG_QCA_GPIO_MASK_LED_ACT_L
63 #define CONFIG_QCA_GPIO_MASK_IN GPIO16 | GPIO17
64 #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H CONFIG_QCA_GPIO_MASK_LED_ACT_L
66 #elif defined(CONFIG_FOR_TPLINK_WA801ND_V2) ||\
67 defined(CONFIG_FOR_TPLINK_WA830RE_V2)
69 #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO13 | GPIO14 | GPIO15 |\
71 #define CONFIG_QCA_GPIO_MASK_OUT CONFIG_QCA_GPIO_MASK_LED_ACT_L
72 #define CONFIG_QCA_GPIO_MASK_IN GPIO16 | GPIO17
73 #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H CONFIG_QCA_GPIO_MASK_LED_ACT_L
75 #elif defined(CONFIG_FOR_YUNCORE_CPE870)
77 #define CONFIG_QCA_GPIO_MASK_LED_ACT_L GPIO0 | GPIO1 | GPIO2 |\
78 GPIO3 | GPIO13 | GPIO19 |\
80 #define CONFIG_QCA_GPIO_MASK_OUT CONFIG_QCA_GPIO_MASK_LED_ACT_L
81 #define CONFIG_QCA_GPIO_MASK_IN GPIO16
82 #define CONFIG_QCA_GPIO_MASK_OUT_INIT_H CONFIG_QCA_GPIO_MASK_LED_ACT_L
91 #if defined(CONFIG_FOR_TPLINK_WDR3500_V1) ||\
92 defined(CONFIG_FOR_TPLINK_WDR3600_V1) ||\
93 defined(CONFIG_FOR_TPLINK_WDR43X0_V1)
95 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 "\
96 "rootfstype=squashfs init=/sbin/init "\
97 "mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),6336k(rootfs),1408k(uImage),64k(mib0),64k(art)"
99 #elif defined(CONFIG_FOR_YUNCORE_CPE870)
101 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 "\
102 "rootfstype=squashfs,jffs2 init=/sbin/init "\
103 "mtdparts=ath-nor0:64k(u-boot),64k(u-boot-env),6528k(rootfs),1408K(uImage)"\
104 ",7936k@0x20000(firmware),64k(NVRAM),64k(ART),8128k@0x00000(firmware2)"
108 #define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 "\
109 "rootfstype=squashfs init=/sbin/init "\
110 "mtdparts=ath-nor0:128k(u-boot),1024k(kernel),2816k(rootfs),64k(config),64k(art)"
115 * =============================
116 * Load address and boot command
117 * =============================
119 #if defined(CONFIG_FOR_YUNCORE_CPE870)
120 #define CFG_LOAD_ADDR 0x9F680000
122 #define CFG_LOAD_ADDR 0x9F020000
125 #define CONFIG_BOOTCOMMAND "bootm " MK_STR(CFG_LOAD_ADDR)
128 * =========================
129 * Environment configuration
130 * =========================
132 #if defined(CONFIG_FOR_YUNCORE_CPE870)
133 #define CFG_ENV_ADDR 0x9F020000
134 #define CFG_ENV_SIZE 0xFC00
135 #define CFG_ENV_SECT_SIZE 0x10000
137 #define CFG_ENV_ADDR 0x9F01EC00
138 #define CFG_ENV_SIZE 0x1000
139 #define CFG_ENV_SECT_SIZE 0x10000
143 * ===========================
144 * List of available baudrates
145 * ===========================
147 #define CFG_BAUDRATE_TABLE \
148 { 600, 1200, 2400, 4800, 9600, 14400, \
149 19200, 28800, 38400, 56000, 57600, 115200 }
152 * ==================================================
153 * MAC address/es, model and WPS pin offsets in FLASH
154 * ==================================================
156 #if defined(CONFIG_FOR_YUNCORE_CPE870)
157 #define OFFSET_MAC_DATA_BLOCK 0xFF0000
158 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
159 #define OFFSET_MAC_ADDRESS 0x000000
161 #define OFFSET_MAC_DATA_BLOCK 0x010000
162 #define OFFSET_MAC_DATA_BLOCK_LENGTH 0x010000
163 #define OFFSET_MAC_ADDRESS 0x00FC00
164 #define OFFSET_ROUTER_MODEL 0x00FD00
165 #define OFFSET_PIN_NUMBER 0x00FE00
169 * =========================
170 * Custom changes per device
171 * =========================
175 * YunCore CPE870 is limited to 64 KB only,
176 * disable some commands
178 #if defined(CONFIG_FOR_YUNCORE_CPE870)
179 #undef CONFIG_CMD_DHCP
180 #undef CONFIG_CMD_LOADB
181 #undef CONFIG_CMD_SNTP
182 #undef CONFIG_CMD_IMI
186 * ===========================
187 * HTTP recovery configuration
188 * ===========================
190 #if defined(CONFIG_FOR_YUNCORE_CPE870)
191 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS CFG_FLASH_BASE + 0x20000
193 #define WEBFAILSAFE_UPLOAD_KERNEL_ADDRESS CFG_LOAD_ADDR
196 /* Firmware size limit */
197 #if defined(CONFIG_FOR_YUNCORE_CPE870)
198 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (256 * 1024)
200 #define WEBFAILSAFE_UPLOAD_LIMITED_AREA_IN_BYTES (192 * 1024)
204 * ========================
205 * PLL/Clocks configuration
206 * ========================
208 #define CONFIG_QCA_PLL QCA_PLL_PRESET_550_400_200
210 #if defined(CONFIG_FOR_TPLINK_MR3420_V2) ||\
211 defined(CONFIG_FOR_TPLINK_WA801ND_V2) ||\
212 defined(CONFIG_FOR_TPLINK_WA830RE_V2) ||\
213 defined(CONFIG_FOR_TPLINK_WDR3600_V1) ||\
214 defined(CONFIG_FOR_TPLINK_WDR43X0_V1) ||\
215 defined(CONFIG_FOR_TPLINK_WDR3500_V1) ||\
216 defined(CONFIG_FOR_TPLINK_WR841N_V8) ||\
217 defined(CONFIG_FOR_YUNCORE_CPE870)
219 #define CONFIG_QCA_PLL_IN_FLASH_BLOCK_OFFSET 0x10000
220 #define CONFIG_QCA_PLL_IN_FLASH_BLOCK_SIZE 0x10000
225 * ==================================
226 * For upgrade scripts in environment
227 * ==================================
229 #if !defined(CONFIG_FOR_YUNCORE_CPE870)
230 #define CONFIG_UPG_UBOOT_SIZE_BACKUP_HEX 0x20000
233 #if defined(CONFIG_FOR_YUNCORE_CPE870)
234 #define CONFIG_UPG_SCRIPTS_FW_ADDR_HEX 0x9F020000
238 * ===================
239 * Other configuration
240 * ===================
243 /* Cache lock for stack */
244 #define CONFIG_INIT_SRAM_SP_OFFSET 0xbd007000
246 #endif /* _DB12X_H */