1/*
2 * SiliconBackplane Chipcommon core hardware definitions.
3 *
4 * The chipcommon core provides chip identification, SB control,
5 * jtag, 0/1/2 uarts, clock frequency control, a watchdog interrupt timer,
6 * gpio interface, extbus, and support for serial and parallel flashes.
7 *
8 * $Id: sbchipc.h,v 13.103.2.5.4.5.2.9 2009/07/03 14:23:21 Exp $
9 *
10 * Copyright (C) 1999-2010, Broadcom Corporation
11 *
12 *      Unless you and Broadcom execute a separate written software license
13 * agreement governing use of this software, this software is licensed to you
14 * under the terms of the GNU General Public License version 2 (the "GPL"),
15 * available at http://www.broadcom.com/licenses/GPLv2.php, with the
16 * following added to such license:
17 *
18 *      As a special exception, the copyright holders of this software give you
19 * permission to link this software with independent modules, and to copy and
20 * distribute the resulting executable under terms of your choice, provided that
21 * you also meet, for each linked independent module, the terms and conditions of
22 * the license of that module.  An independent module is a module which is not
23 * derived from this software.  The special exception does not apply to any
24 * modifications of the software.
25 *
26 *      Notwithstanding the above, under no circumstances may you combine this
27 * software in any way with any other Broadcom software provided under a license
28 * other than the GPL, without Broadcom's express prior written consent.
29 */
30
31
32#ifndef	_SBCHIPC_H
33#define	_SBCHIPC_H
34
35#ifndef _LANGUAGE_ASSEMBLY
36
37
38#ifndef PAD
39#define	_PADLINE(line)	pad ## line
40#define	_XSTR(line)	_PADLINE(line)
41#define	PAD		_XSTR(__LINE__)
42#endif
43
44typedef volatile struct {
45	uint32	chipid;
46	uint32	capabilities;
47	uint32	corecontrol;
48	uint32	bist;
49
50
51	uint32	otpstatus;
52	uint32	otpcontrol;
53	uint32	otpprog;
54	uint32	PAD;
55
56
57	uint32	intstatus;
58	uint32	intmask;
59	uint32	chipcontrol;
60	uint32	chipstatus;
61
62
63	uint32	jtagcmd;
64	uint32	jtagir;
65	uint32	jtagdr;
66	uint32	jtagctrl;
67
68
69	uint32	flashcontrol;
70	uint32	flashaddress;
71	uint32	flashdata;
72	uint32	PAD[1];
73
74
75	uint32	broadcastaddress;
76	uint32	broadcastdata;
77
78
79	uint32	gpiopullup;
80	uint32	gpiopulldown;
81	uint32	gpioin;
82	uint32	gpioout;
83	uint32	gpioouten;
84	uint32	gpiocontrol;
85	uint32	gpiointpolarity;
86	uint32	gpiointmask;
87
88
89	uint32	gpioevent;
90	uint32	gpioeventintmask;
91
92
93	uint32	watchdog;
94
95
96	uint32	gpioeventintpolarity;
97
98
99	uint32  gpiotimerval;
100	uint32  gpiotimeroutmask;
101
102
103	uint32	clockcontrol_n;
104	uint32	clockcontrol_sb;
105	uint32	clockcontrol_pci;
106	uint32	clockcontrol_m2;
107	uint32	clockcontrol_m3;
108	uint32	clkdiv;
109	uint32	PAD[2];
110
111
112	uint32	pll_on_delay;
113	uint32	fref_sel_delay;
114	uint32	slow_clk_ctl;
115	uint32	PAD[1];
116
117
118	uint32	system_clk_ctl;
119	uint32	clkstatestretch;
120	uint32	PAD[13];
121
122
123	uint32	eromptr;
124
125
126	uint32	pcmcia_config;
127	uint32	pcmcia_memwait;
128	uint32	pcmcia_attrwait;
129	uint32	pcmcia_iowait;
130	uint32	ide_config;
131	uint32	ide_memwait;
132	uint32	ide_attrwait;
133	uint32	ide_iowait;
134	uint32	prog_config;
135	uint32	prog_waitcount;
136	uint32	flash_config;
137	uint32	flash_waitcount;
138	uint32	PAD[4];
139	uint32	PAD[40];
140
141
142
143	uint32	clk_ctl_st;
144	uint32	hw_war;
145	uint32	PAD[70];
146
147
148	uint8	uart0data;
149	uint8	uart0imr;
150	uint8	uart0fcr;
151	uint8	uart0lcr;
152	uint8	uart0mcr;
153	uint8	uart0lsr;
154	uint8	uart0msr;
155	uint8	uart0scratch;
156	uint8	PAD[248];
157
158	uint8	uart1data;
159	uint8	uart1imr;
160	uint8	uart1fcr;
161	uint8	uart1lcr;
162	uint8	uart1mcr;
163	uint8	uart1lsr;
164	uint8	uart1msr;
165	uint8	uart1scratch;
166	uint32	PAD[126];
167
168
169	uint32	pmucontrol;
170	uint32	pmucapabilities;
171	uint32	pmustatus;
172	uint32	res_state;
173	uint32	res_pending;
174	uint32	pmutimer;
175	uint32	min_res_mask;
176	uint32	max_res_mask;
177	uint32	res_table_sel;
178	uint32	res_dep_mask;
179	uint32	res_updn_timer;
180	uint32	res_timer;
181	uint32	clkstretch;
182	uint32	pmuwatchdog;
183	uint32	gpiosel;
184	uint32	gpioenable;
185	uint32	res_req_timer_sel;
186	uint32	res_req_timer;
187	uint32	res_req_mask;
188	uint32	PAD;
189	uint32	chipcontrol_addr;
190	uint32	chipcontrol_data;
191	uint32	regcontrol_addr;
192	uint32	regcontrol_data;
193	uint32	pllcontrol_addr;
194	uint32	pllcontrol_data;
195	uint32	PAD[102];
196	uint16	otp[768];
197} chipcregs_t;
198
199#endif
200
201#define	CC_CHIPID		0
202#define	CC_CAPABILITIES		4
203#define CC_OTPST		0x10
204#define CC_CHIPST		0x2c
205#define	CC_JTAGCMD		0x30
206#define	CC_JTAGIR		0x34
207#define	CC_JTAGDR		0x38
208#define	CC_JTAGCTRL		0x3c
209#define	CC_WATCHDOG		0x80
210#define	CC_CLKC_N		0x90
211#define	CC_CLKC_M0		0x94
212#define	CC_CLKC_M1		0x98
213#define	CC_CLKC_M2		0x9c
214#define	CC_CLKC_M3		0xa0
215#define	CC_CLKDIV		0xa4
216#define	CC_SYS_CLK_CTL		0xc0
217#define	CC_CLK_CTL_ST		SI_CLK_CTL_ST
218#define	CC_EROMPTR		0xfc
219#define	PMU_CTL			0x600
220#define	PMU_CAP			0x604
221#define	PMU_ST			0x608
222#define PMU_RES_STATE		0x60c
223#define PMU_TIMER		0x614
224#define	PMU_MIN_RES_MASK	0x618
225#define	PMU_MAX_RES_MASK	0x61c
226#define PMU_REG_CONTROL_ADDR	0x658
227#define PMU_REG_CONTROL_DATA	0x65C
228#define PMU_PLL_CONTROL_ADDR 	0x660
229#define PMU_PLL_CONTROL_DATA 	0x664
230#define	CC_OTP			0x800
231
232
233#define	CID_ID_MASK		0x0000ffff
234#define	CID_REV_MASK		0x000f0000
235#define	CID_REV_SHIFT		16
236#define	CID_PKG_MASK		0x00f00000
237#define	CID_PKG_SHIFT		20
238#define	CID_CC_MASK		0x0f000000
239#define CID_CC_SHIFT		24
240#define	CID_TYPE_MASK		0xf0000000
241#define CID_TYPE_SHIFT		28
242
243
244#define	CC_CAP_UARTS_MASK	0x00000003
245#define CC_CAP_MIPSEB		0x00000004
246#define CC_CAP_UCLKSEL		0x00000018
247#define CC_CAP_UINTCLK		0x00000008
248#define CC_CAP_UARTGPIO		0x00000020
249#define CC_CAP_EXTBUS_MASK	0x000000c0
250#define CC_CAP_EXTBUS_NONE	0x00000000
251#define CC_CAP_EXTBUS_FULL	0x00000040
252#define CC_CAP_EXTBUS_PROG	0x00000080
253#define	CC_CAP_FLASH_MASK	0x00000700
254#define	CC_CAP_PLL_MASK		0x00038000
255#define CC_CAP_PWR_CTL		0x00040000
256#define CC_CAP_OTPSIZE		0x00380000
257#define CC_CAP_OTPSIZE_SHIFT	19
258#define CC_CAP_OTPSIZE_BASE	5
259#define CC_CAP_JTAGP		0x00400000
260#define CC_CAP_ROM		0x00800000
261#define CC_CAP_BKPLN64		0x08000000
262#define	CC_CAP_PMU		0x10000000
263#define	CC_CAP_ECI		0x20000000
264
265
266#define PLL_NONE		0x00000000
267#define PLL_TYPE1		0x00010000
268#define PLL_TYPE2		0x00020000
269#define PLL_TYPE3		0x00030000
270#define PLL_TYPE4		0x00008000
271#define PLL_TYPE5		0x00018000
272#define PLL_TYPE6		0x00028000
273#define PLL_TYPE7		0x00038000
274
275
276#define	ILP_CLOCK		32000
277
278
279#define	ALP_CLOCK		20000000
280
281
282#define	HT_CLOCK		80000000
283
284
285#define CC_UARTCLKO		0x00000001
286#define	CC_SE			0x00000002
287#define CC_UARTCLKEN		0x00000008
288
289
290#define CHIPCTRL_4321A0_DEFAULT	0x3a4
291#define CHIPCTRL_4321A1_DEFAULT	0x0a4
292#define CHIPCTRL_4321_PLL_DOWN	0x800000
293
294
295#define OTPS_OL_MASK		0x000000ff
296#define OTPS_OL_MFG		0x00000001
297#define OTPS_OL_OR1		0x00000002
298#define OTPS_OL_OR2		0x00000004
299#define OTPS_OL_GU		0x00000008
300#define OTPS_GUP_MASK		0x00000f00
301#define OTPS_GUP_SHIFT		8
302#define OTPS_GUP_HW		0x00000100
303#define OTPS_GUP_SW		0x00000200
304#define OTPS_GUP_CI		0x00000400
305#define OTPS_GUP_FUSE		0x00000800
306#define OTPS_READY		0x00001000
307#define OTPS_RV(x)		(1 << (16 + (x)))
308#define OTPS_RV_MASK		0x0fff0000
309
310
311#define OTPC_PROGSEL		0x00000001
312#define OTPC_PCOUNT_MASK	0x0000000e
313#define OTPC_PCOUNT_SHIFT	1
314#define OTPC_VSEL_MASK		0x000000f0
315#define OTPC_VSEL_SHIFT		4
316#define OTPC_TMM_MASK		0x00000700
317#define OTPC_TMM_SHIFT		8
318#define OTPC_ODM		0x00000800
319#define OTPC_PROGEN		0x80000000
320
321
322#define OTPP_COL_MASK		0x000000ff
323#define OTPP_COL_SHIFT		0
324#define OTPP_ROW_MASK		0x0000ff00
325#define OTPP_ROW_SHIFT		8
326#define OTPP_OC_MASK		0x0f000000
327#define OTPP_OC_SHIFT		24
328#define OTPP_READERR		0x10000000
329#define OTPP_VALUE_MASK		0x20000000
330#define OTPP_VALUE_SHIFT	29
331#define OTPP_START_BUSY		0x80000000
332
333
334#define OTPPOC_READ		0
335#define OTPPOC_BIT_PROG		1
336#define OTPPOC_VERIFY		3
337#define OTPPOC_INIT		4
338#define OTPPOC_SET		5
339#define OTPPOC_RESET		6
340#define OTPPOC_OCST		7
341#define OTPPOC_ROW_LOCK		8
342#define OTPPOC_PRESCN_TEST	9
343
344
345#define JCMD_START		0x80000000
346#define JCMD_BUSY		0x80000000
347#define JCMD_STATE_MASK		0x60000000
348#define JCMD_STATE_TLR		0x00000000
349#define JCMD_STATE_PIR		0x20000000
350#define JCMD_STATE_PDR		0x40000000
351#define JCMD_STATE_RTI		0x60000000
352#define JCMD0_ACC_MASK		0x0000f000
353#define JCMD0_ACC_IRDR		0x00000000
354#define JCMD0_ACC_DR		0x00001000
355#define JCMD0_ACC_IR		0x00002000
356#define JCMD0_ACC_RESET		0x00003000
357#define JCMD0_ACC_IRPDR		0x00004000
358#define JCMD0_ACC_PDR		0x00005000
359#define JCMD0_IRW_MASK		0x00000f00
360#define JCMD_ACC_MASK		0x000f0000
361#define JCMD_ACC_IRDR		0x00000000
362#define JCMD_ACC_DR		0x00010000
363#define JCMD_ACC_IR		0x00020000
364#define JCMD_ACC_RESET		0x00030000
365#define JCMD_ACC_IRPDR		0x00040000
366#define JCMD_ACC_PDR		0x00050000
367#define JCMD_ACC_PIR		0x00060000
368#define JCMD_ACC_IRDR_I		0x00070000
369#define JCMD_ACC_DR_I		0x00080000
370#define JCMD_IRW_MASK		0x00001f00
371#define JCMD_IRW_SHIFT		8
372#define JCMD_DRW_MASK		0x0000003f
373
374
375#define JCTRL_FORCE_CLK		4
376#define JCTRL_EXT_EN		2
377#define JCTRL_EN		1
378
379
380#define	CLKD_SFLASH		0x0f000000
381#define	CLKD_SFLASH_SHIFT	24
382#define	CLKD_OTP		0x000f0000
383#define	CLKD_OTP_SHIFT		16
384#define	CLKD_JTAG		0x00000f00
385#define	CLKD_JTAG_SHIFT		8
386#define	CLKD_UART		0x000000ff
387
388
389#define	CI_GPIO			0x00000001
390#define	CI_EI			0x00000002
391#define	CI_TEMP			0x00000004
392#define	CI_SIRQ			0x00000008
393#define	CI_ECI			0x00000010
394#define	CI_PMU			0x00000020
395#define	CI_UART			0x00000040
396#define	CI_WDRESET		0x80000000
397
398
399#define SCC_SS_MASK		0x00000007
400#define	SCC_SS_LPO		0x00000000
401#define	SCC_SS_XTAL		0x00000001
402#define	SCC_SS_PCI		0x00000002
403#define SCC_LF			0x00000200
404#define SCC_LP			0x00000400
405#define SCC_FS			0x00000800
406#define SCC_IP			0x00001000
407#define SCC_XC			0x00002000
408#define SCC_XP			0x00004000
409#define SCC_CD_MASK		0xffff0000
410#define SCC_CD_SHIFT		16
411
412
413#define	SYCC_IE			0x00000001
414#define	SYCC_AE			0x00000002
415#define	SYCC_FP			0x00000004
416#define	SYCC_AR			0x00000008
417#define	SYCC_HR			0x00000010
418#define SYCC_CD_MASK		0xffff0000
419#define SYCC_CD_SHIFT		16
420
421
422#define	CF_EN			0x00000001
423#define	CF_EM_MASK		0x0000000e
424#define	CF_EM_SHIFT		1
425#define	CF_EM_FLASH		0
426#define	CF_EM_SYNC		2
427#define	CF_EM_PCMCIA		4
428#define	CF_DS			0x00000010
429#define	CF_BS			0x00000020
430#define	CF_CD_MASK		0x000000c0
431#define	CF_CD_SHIFT		6
432#define	CF_CD_DIV2		0x00000000
433#define	CF_CD_DIV3		0x00000040
434#define	CF_CD_DIV4		0x00000080
435#define	CF_CE			0x00000100
436#define	CF_SB			0x00000200
437
438
439#define	PM_W0_MASK		0x0000003f
440#define	PM_W1_MASK		0x00001f00
441#define	PM_W1_SHIFT		8
442#define	PM_W2_MASK		0x001f0000
443#define	PM_W2_SHIFT		16
444#define	PM_W3_MASK		0x1f000000
445#define	PM_W3_SHIFT		24
446
447
448#define	PA_W0_MASK		0x0000003f
449#define	PA_W1_MASK		0x00001f00
450#define	PA_W1_SHIFT		8
451#define	PA_W2_MASK		0x001f0000
452#define	PA_W2_SHIFT		16
453#define	PA_W3_MASK		0x1f000000
454#define	PA_W3_SHIFT		24
455
456
457#define	PI_W0_MASK		0x0000003f
458#define	PI_W1_MASK		0x00001f00
459#define	PI_W1_SHIFT		8
460#define	PI_W2_MASK		0x001f0000
461#define	PI_W2_SHIFT		16
462#define	PI_W3_MASK		0x1f000000
463#define	PI_W3_SHIFT		24
464
465
466#define	PW_W0_MASK		0x0000001f
467#define	PW_W1_MASK		0x00001f00
468#define	PW_W1_SHIFT		8
469#define	PW_W2_MASK		0x001f0000
470#define	PW_W2_SHIFT		16
471#define	PW_W3_MASK		0x1f000000
472#define	PW_W3_SHIFT		24
473
474#define PW_W0       		0x0000000c
475#define PW_W1       		0x00000a00
476#define PW_W2       		0x00020000
477#define PW_W3       		0x01000000
478
479
480#define	FW_W0_MASK		0x0000003f
481#define	FW_W1_MASK		0x00001f00
482#define	FW_W1_SHIFT		8
483#define	FW_W2_MASK		0x001f0000
484#define	FW_W2_SHIFT		16
485#define	FW_W3_MASK		0x1f000000
486#define	FW_W3_SHIFT		24
487
488
489#define WATCHDOG_CLOCK		48000000
490#define WATCHDOG_CLOCK_5354 	32000
491
492
493#define	PCTL_ILP_DIV_MASK	0xffff0000
494#define	PCTL_ILP_DIV_SHIFT	16
495#define PCTL_PLL_PLLCTL_UPD	0x00000400
496#define PCTL_NOILP_ON_WAIT	0x00000200
497#define	PCTL_HT_REQ_EN		0x00000100
498#define	PCTL_ALP_REQ_EN		0x00000080
499#define	PCTL_XTALFREQ_MASK	0x0000007c
500#define	PCTL_XTALFREQ_SHIFT	2
501#define	PCTL_ILP_DIV_EN		0x00000002
502#define	PCTL_LPO_SEL		0x00000001
503
504
505#define CSTRETCH_HT		0xffff0000
506#define CSTRETCH_ALP		0x0000ffff
507
508
509#define GPIO_ONTIME_SHIFT	16
510
511
512#define	CN_N1_MASK		0x3f
513#define	CN_N2_MASK		0x3f00
514#define	CN_N2_SHIFT		8
515#define	CN_PLLC_MASK		0xf0000
516#define	CN_PLLC_SHIFT		16
517
518
519#define	CC_M1_MASK		0x3f
520#define	CC_M2_MASK		0x3f00
521#define	CC_M2_SHIFT		8
522#define	CC_M3_MASK		0x3f0000
523#define	CC_M3_SHIFT		16
524#define	CC_MC_MASK		0x1f000000
525#define	CC_MC_SHIFT		24
526
527
528#define	CC_F6_2			0x02
529#define	CC_F6_3			0x03
530#define	CC_F6_4			0x05
531#define	CC_F6_5			0x09
532#define	CC_F6_6			0x11
533#define	CC_F6_7			0x21
534
535#define	CC_F5_BIAS		5
536
537#define	CC_MC_BYPASS		0x08
538#define	CC_MC_M1		0x04
539#define	CC_MC_M1M2		0x02
540#define	CC_MC_M1M2M3		0x01
541#define	CC_MC_M1M3		0x11
542
543
544#define	CC_T2_BIAS		2
545#define	CC_T2M2_BIAS		3
546
547#define	CC_T2MC_M1BYP		1
548#define	CC_T2MC_M2BYP		2
549#define	CC_T2MC_M3BYP		4
550
551
552#define	CC_T6_MMASK		1
553#define	CC_T6_M0		120000000
554#define	CC_T6_M1		100000000
555#define	SB2MIPS_T6(sb)		(2 * (sb))
556
557
558#define	CC_CLOCK_BASE1		24000000
559#define CC_CLOCK_BASE2		12500000
560
561
562#define	CLKC_5350_N		0x0311
563#define	CLKC_5350_M		0x04020009
564
565
566#define FLASH_NONE		0x000
567#define SFLASH_ST		0x100
568#define SFLASH_AT		0x200
569#define	PFLASH			0x700
570
571
572#define	CC_CFG_EN		0x0001
573#define	CC_CFG_EM_MASK		0x000e
574#define	CC_CFG_EM_ASYNC		0x0000
575#define	CC_CFG_EM_SYNC		0x0002
576#define	CC_CFG_EM_PCMCIA	0x0004
577#define	CC_CFG_EM_IDE		0x0006
578#define	CC_CFG_DS		0x0010
579#define	CC_CFG_CD_MASK		0x00e0
580#define	CC_CFG_CE		0x0100
581#define	CC_CFG_SB		0x0200
582#define	CC_CFG_IS		0x0400
583
584
585#define	CC_EB_BASE		0x1a000000
586#define	CC_EB_PCMCIA_MEM	0x1a000000
587#define	CC_EB_PCMCIA_IO		0x1a200000
588#define	CC_EB_PCMCIA_CFG	0x1a400000
589#define	CC_EB_IDE		0x1a800000
590#define	CC_EB_PCMCIA1_MEM	0x1a800000
591#define	CC_EB_PCMCIA1_IO	0x1aa00000
592#define	CC_EB_PCMCIA1_CFG	0x1ac00000
593#define	CC_EB_PROGIF		0x1b000000
594
595
596
597#define SFLASH_OPCODE		0x000000ff
598#define SFLASH_ACTION		0x00000700
599#define	SFLASH_CS_ACTIVE	0x00001000
600#define SFLASH_START		0x80000000
601#define SFLASH_BUSY		SFLASH_START
602
603
604#define	SFLASH_ACT_OPONLY	0x0000
605#define	SFLASH_ACT_OP1D		0x0100
606#define	SFLASH_ACT_OP3A		0x0200
607#define	SFLASH_ACT_OP3A1D	0x0300
608#define	SFLASH_ACT_OP3A4D	0x0400
609#define	SFLASH_ACT_OP3A4X4D	0x0500
610#define	SFLASH_ACT_OP3A1X4D	0x0700
611
612
613#define SFLASH_ST_WREN		0x0006
614#define SFLASH_ST_WRDIS		0x0004
615#define SFLASH_ST_RDSR		0x0105
616#define SFLASH_ST_WRSR		0x0101
617#define SFLASH_ST_READ		0x0303
618#define SFLASH_ST_PP		0x0302
619#define SFLASH_ST_SE		0x02d8
620#define SFLASH_ST_BE		0x00c7
621#define SFLASH_ST_DP		0x00b9
622#define SFLASH_ST_RES		0x03ab
623#define SFLASH_ST_CSA		0x1000
624
625
626#define SFLASH_ST_WIP		0x01
627#define SFLASH_ST_WEL		0x02
628#define SFLASH_ST_BP_MASK	0x1c
629#define SFLASH_ST_BP_SHIFT	2
630#define SFLASH_ST_SRWD		0x80
631
632
633#define SFLASH_AT_READ				0x07e8
634#define SFLASH_AT_PAGE_READ			0x07d2
635#define SFLASH_AT_BUF1_READ
636#define SFLASH_AT_BUF2_READ
637#define SFLASH_AT_STATUS			0x01d7
638#define SFLASH_AT_BUF1_WRITE			0x0384
639#define SFLASH_AT_BUF2_WRITE			0x0387
640#define SFLASH_AT_BUF1_ERASE_PROGRAM		0x0283
641#define SFLASH_AT_BUF2_ERASE_PROGRAM		0x0286
642#define SFLASH_AT_BUF1_PROGRAM			0x0288
643#define SFLASH_AT_BUF2_PROGRAM			0x0289
644#define SFLASH_AT_PAGE_ERASE			0x0281
645#define SFLASH_AT_BLOCK_ERASE			0x0250
646#define SFLASH_AT_BUF1_WRITE_ERASE_PROGRAM	0x0382
647#define SFLASH_AT_BUF2_WRITE_ERASE_PROGRAM	0x0385
648#define SFLASH_AT_BUF1_LOAD			0x0253
649#define SFLASH_AT_BUF2_LOAD			0x0255
650#define SFLASH_AT_BUF1_COMPARE			0x0260
651#define SFLASH_AT_BUF2_COMPARE			0x0261
652#define SFLASH_AT_BUF1_REPROGRAM		0x0258
653#define SFLASH_AT_BUF2_REPROGRAM		0x0259
654
655
656#define SFLASH_AT_READY				0x80
657#define SFLASH_AT_MISMATCH			0x40
658#define SFLASH_AT_ID_MASK			0x38
659#define SFLASH_AT_ID_SHIFT			3
660
661
662
663#define UART_RX		0
664#define UART_TX		0
665#define UART_DLL	0
666#define UART_IER	1
667#define UART_DLM	1
668#define UART_IIR	2
669#define UART_FCR	2
670#define UART_LCR	3
671#define UART_MCR	4
672#define UART_LSR	5
673#define UART_MSR	6
674#define UART_SCR	7
675#define UART_LCR_DLAB	0x80
676#define UART_LCR_WLEN8	0x03
677#define UART_MCR_OUT2	0x08
678#define UART_MCR_LOOP	0x10
679#define UART_LSR_RX_FIFO 	0x80
680#define UART_LSR_TDHR		0x40
681#define UART_LSR_THRE		0x20
682#define UART_LSR_BREAK		0x10
683#define UART_LSR_FRAMING	0x08
684#define UART_LSR_PARITY		0x04
685#define UART_LSR_OVERRUN	0x02
686#define UART_LSR_RXRDY		0x01
687#define UART_FCR_FIFO_ENABLE 1
688
689
690#define UART_IIR_FIFO_MASK	0xc0
691#define UART_IIR_INT_MASK	0xf
692#define UART_IIR_MDM_CHG	0x0
693#define UART_IIR_NOINT		0x1
694#define UART_IIR_THRE		0x2
695#define UART_IIR_RCVD_DATA	0x4
696#define UART_IIR_RCVR_STATUS 	0x6
697#define UART_IIR_CHAR_TIME 	0xc
698
699
700#define UART_IER_EDSSI	8
701#define UART_IER_ELSI	4
702#define UART_IER_ETBEI  2
703#define UART_IER_ERBFI	1
704
705
706#define	PST_INTPEND	0x0040
707#define	PST_SBCLKST	0x0030
708#define	PST_SBCLKST_ILP	0x0010
709#define	PST_SBCLKST_ALP	0x0020
710#define	PST_SBCLKST_HT	0x0030
711#define	PST_ALPAVAIL	0x0008
712#define	PST_HTAVAIL	0x0004
713#define	PST_RESINIT	0x0003
714
715
716#define PCAP_REV_MASK	0x000000ff
717#define PCAP_RC_MASK	0x00001f00
718#define PCAP_RC_SHIFT	8
719#define PCAP_TC_MASK	0x0001e000
720#define PCAP_TC_SHIFT	13
721#define PCAP_PC_MASK	0x001e0000
722#define PCAP_PC_SHIFT	17
723#define PCAP_VC_MASK	0x01e00000
724#define PCAP_VC_SHIFT	21
725#define PCAP_CC_MASK	0x1e000000
726#define PCAP_CC_SHIFT	25
727#define PCAP5_PC_MASK	0x003e0000
728#define PCAP5_PC_SHIFT	17
729#define PCAP5_VC_MASK	0x07c00000
730#define PCAP5_VC_SHIFT	22
731#define PCAP5_CC_MASK	0xf8000000
732#define PCAP5_CC_SHIFT	27
733
734
735
736#define	PRRT_TIME_MASK	0x03ff
737#define	PRRT_INTEN	0x0400
738#define	PRRT_REQ_ACTIVE	0x0800
739#define	PRRT_ALP_REQ	0x1000
740#define	PRRT_HT_REQ	0x2000
741
742
743#define PMURES_BIT(bit)	(1 << (bit))
744
745
746#define PMURES_MAX_RESNUM	30
747
748
749
750
751#define	PMU0_PLL0_PLLCTL0		0
752#define	PMU0_PLL0_PC0_PDIV_MASK		1
753#define	PMU0_PLL0_PC0_PDIV_FREQ		25000
754#define PMU0_PLL0_PC0_DIV_ARM_MASK	0x00000038
755#define PMU0_PLL0_PC0_DIV_ARM_SHIFT	3
756#define PMU0_PLL0_PC0_DIV_ARM_BASE	8
757
758
759#define PMU0_PLL0_PC0_DIV_ARM_110MHZ	0
760#define PMU0_PLL0_PC0_DIV_ARM_97_7MHZ	1
761#define PMU0_PLL0_PC0_DIV_ARM_88MHZ	2
762#define PMU0_PLL0_PC0_DIV_ARM_80MHZ	3
763#define PMU0_PLL0_PC0_DIV_ARM_73_3MHZ	4
764#define PMU0_PLL0_PC0_DIV_ARM_67_7MHZ	5
765#define PMU0_PLL0_PC0_DIV_ARM_62_9MHZ	6
766#define PMU0_PLL0_PC0_DIV_ARM_58_6MHZ	7
767
768
769#define	PMU0_PLL0_PLLCTL1		1
770#define	PMU0_PLL0_PC1_WILD_INT_MASK	0xf0000000
771#define	PMU0_PLL0_PC1_WILD_INT_SHIFT	28
772#define	PMU0_PLL0_PC1_WILD_FRAC_MASK	0x0fffff00
773#define	PMU0_PLL0_PC1_WILD_FRAC_SHIFT	8
774#define	PMU0_PLL0_PC1_STOP_MOD		0x00000040
775
776
777#define	PMU0_PLL0_PLLCTL2		2
778#define	PMU0_PLL0_PC2_WILD_INT_MASK	0xf
779#define	PMU0_PLL0_PC2_WILD_INT_SHIFT	4
780
781
782#define RES4328_EXT_SWITCHER_PWM	0
783#define RES4328_BB_SWITCHER_PWM		1
784#define RES4328_BB_SWITCHER_BURST	2
785#define RES4328_BB_EXT_SWITCHER_BURST	3
786#define RES4328_ILP_REQUEST		4
787#define RES4328_RADIO_SWITCHER_PWM	5
788#define RES4328_RADIO_SWITCHER_BURST	6
789#define RES4328_ROM_SWITCH		7
790#define RES4328_PA_REF_LDO		8
791#define RES4328_RADIO_LDO		9
792#define RES4328_AFE_LDO			10
793#define RES4328_PLL_LDO			11
794#define RES4328_BG_FILTBYP		12
795#define RES4328_TX_FILTBYP		13
796#define RES4328_RX_FILTBYP		14
797#define RES4328_XTAL_PU			15
798#define RES4328_XTAL_EN			16
799#define RES4328_BB_PLL_FILTBYP		17
800#define RES4328_RF_PLL_FILTBYP		18
801#define RES4328_BB_PLL_PU		19
802
803#define RES5354_EXT_SWITCHER_PWM	0
804#define RES5354_BB_SWITCHER_PWM		1
805#define RES5354_BB_SWITCHER_BURST	2
806#define RES5354_BB_EXT_SWITCHER_BURST	3
807#define RES5354_ILP_REQUEST		4
808#define RES5354_RADIO_SWITCHER_PWM	5
809#define RES5354_RADIO_SWITCHER_BURST	6
810#define RES5354_ROM_SWITCH		7
811#define RES5354_PA_REF_LDO		8
812#define RES5354_RADIO_LDO		9
813#define RES5354_AFE_LDO			10
814#define RES5354_PLL_LDO			11
815#define RES5354_BG_FILTBYP		12
816#define RES5354_TX_FILTBYP		13
817#define RES5354_RX_FILTBYP		14
818#define RES5354_XTAL_PU			15
819#define RES5354_XTAL_EN			16
820#define RES5354_BB_PLL_FILTBYP		17
821#define RES5354_RF_PLL_FILTBYP		18
822#define RES5354_BB_PLL_PU		19
823
824
825
826#define DOT11MAC_880MHZ_CLK_DIVISOR_SHIFT 8
827#define DOT11MAC_880MHZ_CLK_DIVISOR_MASK (0xFF << DOT11MAC_880MHZ_CLK_DIVISOR_SHIFT)
828#define DOT11MAC_880MHZ_CLK_DIVISOR_VAL  (0xE << DOT11MAC_880MHZ_CLK_DIVISOR_SHIFT)
829
830
831#define PMU2_PHY_PLL_PLLCTL		4
832#define PMU2_SI_PLL_PLLCTL		10
833
834
835#define RES4325_BUCK_BOOST_BURST	0
836#define RES4325_CBUCK_BURST		1
837#define RES4325_CBUCK_PWM		2
838#define RES4325_CLDO_CBUCK_BURST	3
839#define RES4325_CLDO_CBUCK_PWM		4
840#define RES4325_BUCK_BOOST_PWM		5
841#define RES4325_ILP_REQUEST		6
842#define RES4325_ABUCK_BURST		7
843#define RES4325_ABUCK_PWM		8
844#define RES4325_LNLDO1_PU		9
845#define RES4325_OTP_PU			10
846#define RES4325_LNLDO3_PU		11
847#define RES4325_LNLDO4_PU		12
848#define RES4325_XTAL_PU			13
849#define RES4325_ALP_AVAIL		14
850#define RES4325_RX_PWRSW_PU		15
851#define RES4325_TX_PWRSW_PU		16
852#define RES4325_RFPLL_PWRSW_PU		17
853#define RES4325_LOGEN_PWRSW_PU		18
854#define RES4325_AFE_PWRSW_PU		19
855#define RES4325_BBPLL_PWRSW_PU		20
856#define RES4325_HT_AVAIL		21
857
858
859#define RES4325B0_CBUCK_LPOM		1
860#define RES4325B0_CBUCK_BURST		2
861#define RES4325B0_CBUCK_PWM		3
862#define RES4325B0_CLDO_PU		4
863
864
865#define RES4325C1_OTP_PWRSW_PU		10
866#define RES4325C1_LNLDO2_PU		12
867
868
869#define CST4325_SPROM_OTP_SEL_MASK	0x00000003
870#define CST4325_DEFCIS_SEL		0
871#define CST4325_SPROM_SEL		1
872#define CST4325_OTP_SEL			2
873#define CST4325_OTP_PWRDN		3
874#define CST4325_SDIO_USB_MODE_MASK	0x00000004
875#define CST4325_SDIO_USB_MODE_SHIFT	2
876#define CST4325_RCAL_VALID_MASK		0x00000008
877#define CST4325_RCAL_VALID_SHIFT	3
878#define CST4325_RCAL_VALUE_MASK		0x000001f0
879#define CST4325_RCAL_VALUE_SHIFT	4
880#define CST4325_PMUTOP_2B_MASK 		0x00000200
881#define CST4325_PMUTOP_2B_SHIFT   	9
882
883#define RES4329_RESERVED0		0
884#define RES4329_CBUCK_LPOM		1
885#define RES4329_CBUCK_BURST		2
886#define RES4329_CBUCK_PWM		3
887#define RES4329_CLDO_PU			4
888#define RES4329_PALDO_PU		5
889#define RES4329_ILP_REQUEST		6
890#define RES4329_RESERVED7		7
891#define RES4329_RESERVED8		8
892#define RES4329_LNLDO1_PU		9
893#define RES4329_OTP_PU			10
894#define RES4329_RESERVED11		11
895#define RES4329_LNLDO2_PU		12
896#define RES4329_XTAL_PU			13
897#define RES4329_ALP_AVAIL		14
898#define RES4329_RX_PWRSW_PU		15
899#define RES4329_TX_PWRSW_PU		16
900#define RES4329_RFPLL_PWRSW_PU		17
901#define RES4329_LOGEN_PWRSW_PU		18
902#define RES4329_AFE_PWRSW_PU		19
903#define RES4329_BBPLL_PWRSW_PU		20
904#define RES4329_HT_AVAIL		21
905
906#define CST4329_SPROM_OTP_SEL_MASK	0x00000003
907#define CST4329_DEFCIS_SEL		0
908#define CST4329_SPROM_SEL		1
909#define CST4329_OTP_SEL			2
910#define CST4329_OTP_PWRDN		3
911#define CST4329_SPI_SDIO_MODE_MASK	0x00000004
912#define CST4329_SPI_SDIO_MODE_SHIFT	2
913
914
915#define RES4312_SWITCHER_BURST		0
916#define RES4312_SWITCHER_PWM    	1
917#define RES4312_PA_REF_LDO		2
918#define RES4312_CORE_LDO_BURST		3
919#define RES4312_CORE_LDO_PWM		4
920#define RES4312_RADIO_LDO		5
921#define RES4312_ILP_REQUEST		6
922#define RES4312_BG_FILTBYP		7
923#define RES4312_TX_FILTBYP		8
924#define RES4312_RX_FILTBYP		9
925#define RES4312_XTAL_PU			10
926#define RES4312_ALP_AVAIL		11
927#define RES4312_BB_PLL_FILTBYP		12
928#define RES4312_RF_PLL_FILTBYP		13
929#define RES4312_HT_AVAIL		14
930
931#define RES4322_RF_LDO			0
932#define RES4322_ILP_REQUEST		1
933#define RES4322_XTAL_PU			2
934#define RES4322_ALP_AVAIL		3
935#define RES4322_SI_PLL_ON		4
936#define RES4322_HT_SI_AVAIL		5
937#define RES4322_PHY_PLL_ON		6
938#define RES4322_HT_PHY_AVAIL		7
939#define RES4322_OTP_PU			8
940
941
942#define CST4322_XTAL_FREQ_20_40MHZ	0x00000020
943#define CST4322_SPROM_OTP_SEL_MASK	0x000000c0
944#define CST4322_SPROM_OTP_SEL_SHIFT	6
945#define CST4322_NO_SPROM_OTP		0
946#define CST4322_SPROM_PRESENT		1
947#define CST4322_OTP_PRESENT		2
948#define CST4322_PCI_OR_USB		0x00000100
949#define CST4322_BOOT_MASK		0x00000600
950#define CST4322_BOOT_SHIFT		9
951#define CST4322_BOOT_FROM_SRAM		0
952#define CST4322_BOOT_FROM_ROM		1
953#define CST4322_BOOT_FROM_FLASH		2
954#define CST4322_BOOT_FROM_INVALID	3
955#define CST4322_ILP_DIV_EN		0x00000800
956#define CST4322_FLASH_TYPE_MASK		0x00001000
957#define CST4322_FLASH_TYPE_SHIFT	12
958#define CST4322_FLASH_TYPE_SHIFT_ST	0
959#define CST4322_FLASH_TYPE_SHIFT_ATMEL	1
960#define CST4322_ARM_TAP_SEL		0x00002000
961#define CST4322_RES_INIT_MODE_MASK	0x0000c000
962#define CST4322_RES_INIT_MODE_SHIFT	14
963#define CST4322_RES_INIT_MODE_ILPAVAIL	0
964#define CST4322_RES_INIT_MODE_ILPREQ	1
965#define CST4322_RES_INIT_MODE_ALPAVAIL	2
966#define CST4322_RES_INIT_MODE_HTAVAIL	3
967#define CST4322_PCIPLLCLK_GATING	0x00010000
968#define CST4322_CLK_SWITCH_PCI_TO_ALP	0x00020000
969#define CST4322_PCI_CARDBUS_MODE	0x00040000
970
971#define RES4315_CBUCK_LPOM		1
972#define RES4315_CBUCK_BURST		2
973#define RES4315_CBUCK_PWM		3
974#define RES4315_CLDO_PU			4
975#define RES4315_PALDO_PU		5
976#define RES4315_ILP_REQUEST		6
977#define RES4315_LNLDO1_PU		9
978#define RES4315_OTP_PU			10
979#define RES4315_LNLDO2_PU		12
980#define RES4315_XTAL_PU			13
981#define RES4315_ALP_AVAIL		14
982#define RES4315_RX_PWRSW_PU		15
983#define RES4315_TX_PWRSW_PU		16
984#define RES4315_RFPLL_PWRSW_PU		17
985#define RES4315_LOGEN_PWRSW_PU		18
986#define RES4315_AFE_PWRSW_PU		19
987#define RES4315_BBPLL_PWRSW_PU		20
988#define RES4315_HT_AVAIL		21
989
990#define CST4315_SPROM_OTP_SEL_MASK	0x00000003
991#define CST4315_DEFCIS_SEL		0x00000000
992#define CST4315_SPROM_SEL		0x00000001
993#define CST4315_OTP_SEL			0x00000002
994#define CST4315_OTP_PWRDN		0x00000003
995#define CST4315_SDIO_MODE		0x00000004
996#define CST4315_RCAL_VALID		0x00000008
997#define CST4315_RCAL_VALUE_MASK		0x000001f0
998#define CST4315_RCAL_VALUE_SHIFT	4
999#define CST4315_PALDO_EXTPNP		0x00000200
1000#define CST4315_CBUCK_MODE_MASK		0x00000c00
1001#define CST4315_CBUCK_MODE_BURST	0x00000400
1002#define CST4315_CBUCK_MODE_LPBURST	0x00000c00
1003
1004#define PMU_MAX_TRANSITION_DLY	15000
1005
1006
1007#define PMURES_UP_TRANSITION	2
1008
1009
1010
1011
1012
1013#define ECI_BW_20   0x0
1014#define ECI_BW_25   0x1
1015#define ECI_BW_30   0x2
1016#define ECI_BW_35   0x3
1017#define ECI_BW_40   0x4
1018#define ECI_BW_45   0x5
1019#define ECI_BW_50   0x6
1020#define ECI_BW_ALL  0x7
1021
1022
1023#define WLAN_NUM_ANT1 TXANT_0
1024#define WLAN_NUM_ANT2 TXANT_1
1025
1026#endif
1027