xref: /freebsd/sys/dev/bhnd/bcma/bcma_dmp.h (revision 2ff63af9)
14ad7e9b0SAdrian Chadd /*-
26e778a7eSPedro F. Giffuni  * SPDX-License-Identifier: ISC
36e778a7eSPedro F. Giffuni  *
44ad7e9b0SAdrian Chadd  * Copyright (c) 2015 Landon Fuller <landon@landonf.org>
54ad7e9b0SAdrian Chadd  * Copyright (c) 2010 Broadcom Corporation
64ad7e9b0SAdrian Chadd  *
74ad7e9b0SAdrian Chadd  * Portions of this file were derived from the aidmp.h header
84ad7e9b0SAdrian Chadd  * distributed with Broadcom's initial brcm80211 Linux driver release, as
94ad7e9b0SAdrian Chadd  * contributed to the Linux staging repository.
104ad7e9b0SAdrian Chadd  *
114ad7e9b0SAdrian Chadd  * Permission to use, copy, modify, and/or distribute this software for any
124ad7e9b0SAdrian Chadd  * purpose with or without fee is hereby granted, provided that the above
134ad7e9b0SAdrian Chadd  * copyright notice and this permission notice appear in all copies.
144ad7e9b0SAdrian Chadd  *
154ad7e9b0SAdrian Chadd  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
164ad7e9b0SAdrian Chadd  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
174ad7e9b0SAdrian Chadd  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
184ad7e9b0SAdrian Chadd  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
194ad7e9b0SAdrian Chadd  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
204ad7e9b0SAdrian Chadd  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
214ad7e9b0SAdrian Chadd  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
224ad7e9b0SAdrian Chadd  *
234ad7e9b0SAdrian Chadd  */
244ad7e9b0SAdrian Chadd 
254ad7e9b0SAdrian Chadd #ifndef	_BCMA_BCMA_DMP_H_
264ad7e9b0SAdrian Chadd #define	_BCMA_BCMA_DMP_H_
274ad7e9b0SAdrian Chadd 
284ad7e9b0SAdrian Chadd /*
294ad7e9b0SAdrian Chadd  * PL-368 Device Management Plugin (DMP) Registers & Constants
304ad7e9b0SAdrian Chadd  *
314ad7e9b0SAdrian Chadd  * The "DMP" core used in Broadcom HND devices has been described
324ad7e9b0SAdrian Chadd  * by Broadcom engineers (and in published header files) as being
334ad7e9b0SAdrian Chadd  * ARM's PL-368 "Device Management Plugin" system IP, included with
344ad7e9b0SAdrian Chadd  * the CoreLink AMBA Designer tooling.
354ad7e9b0SAdrian Chadd  *
364ad7e9b0SAdrian Chadd  * Documentation for the PL-368 is not publicly available, however,
374ad7e9b0SAdrian Chadd  * and the only public reference by ARM to its existence appears to be
384ad7e9b0SAdrian Chadd  * in the proprietary "NIC-301 Interconnect Device Management (PL368)"
394ad7e9b0SAdrian Chadd  * errata publication, available to licensees as part of ARM's
404ad7e9b0SAdrian Chadd  * CoreLink Controllers and Peripherals Engineering Errata.
41824b48efSLandon J. Fuller  *
42824b48efSLandon J. Fuller  * As such, the exact interpretation of these register definitions is
43824b48efSLandon J. Fuller  * unconfirmed, and may be incorrect.
444ad7e9b0SAdrian Chadd  */
454ad7e9b0SAdrian Chadd 
46824b48efSLandon J. Fuller #define	BCMA_DMP_GET_FLAG(_value, _flag)	\
47824b48efSLandon J. Fuller 	(((_value) & _flag) != 0)
48824b48efSLandon J. Fuller #define	BCMA_DMP_GET_BITS(_value, _field)	\
49824b48efSLandon J. Fuller         ((_value & _field ## _MASK) >> _field ## _SHIFT)
50824b48efSLandon J. Fuller #define	BHND_DMP_SET_BITS(_value, _field)	\
51824b48efSLandon J. Fuller 	(((_value) << _field ## _SHIFT) & _field ## _MASK)
52824b48efSLandon J. Fuller 
534ad7e9b0SAdrian Chadd /* Out-of-band Router registers */
544ad7e9b0SAdrian Chadd #define	BCMA_OOB_BUSCONFIG	0x020
554ad7e9b0SAdrian Chadd #define	BCMA_OOB_STATUSA	0x100
564ad7e9b0SAdrian Chadd #define	BCMA_OOB_STATUSB	0x104
574ad7e9b0SAdrian Chadd #define	BCMA_OOB_STATUSC	0x108
584ad7e9b0SAdrian Chadd #define	BCMA_OOB_STATUSD	0x10c
594ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEA0	0x200
604ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEA1	0x204
614ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEA2	0x208
624ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEA3	0x20c
634ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEB0	0x280
644ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEB1	0x284
654ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEB2	0x288
664ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEB3	0x28c
674ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEC0	0x300
684ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEC1	0x304
694ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEC2	0x308
704ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLEC3	0x30c
714ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLED0	0x380
724ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLED1	0x384
734ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLED2	0x388
744ad7e9b0SAdrian Chadd #define	BCMA_OOB_ENABLED3	0x38c
754ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITCR		0xf00
764ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITIPOOBA	0xf10
774ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITIPOOBB	0xf14
784ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITIPOOBC	0xf18
794ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITIPOOBD	0xf1c
804ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITOPOOBA	0xf30
814ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITOPOOBB	0xf34
824ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITOPOOBC	0xf38
834ad7e9b0SAdrian Chadd #define	BCMA_OOB_ITOPOOBD	0xf3c
844ad7e9b0SAdrian Chadd 
85824b48efSLandon J. Fuller /* Common definitions */
86824b48efSLandon J. Fuller #define	BCMA_OOB_NUM_BANKS	4	/**< number of OOB banks (A, B, C, D) */
87824b48efSLandon J. Fuller #define	BCMA_OOB_NUM_SEL	8	/**< number of OOB selectors per bank */
88824b48efSLandon J. Fuller #define	BCMA_OOB_NUM_BUSLINES	32	/**< number of bus lines managed by OOB core */
89824b48efSLandon J. Fuller 
90824b48efSLandon J. Fuller #define	BCMA_OOB_BANKA		0	/**< bank A index */
91824b48efSLandon J. Fuller #define	BCMA_OOB_BANKB		1	/**< bank B index */
92824b48efSLandon J. Fuller #define	BCMA_OOB_BANKC		2	/**< bank C index */
93824b48efSLandon J. Fuller #define	BCMA_OOB_BANKD		3	/**< bank D index */
94824b48efSLandon J. Fuller 
95824b48efSLandon J. Fuller /** OOB bank used for interrupt lines */
96824b48efSLandon J. Fuller #define	BCMA_OOB_BANK_INTR	BCMA_OOB_BANKA
97824b48efSLandon J. Fuller 
98824b48efSLandon J. Fuller /* DMP agent registers */
99824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELINA30	0x000	/**< A0-A3 input selectors */
100824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELINA74	0x004	/**< A4-A7 input selectors */
101824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELINB30	0x020	/**< B0-B3 input selectors */
102824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELINB74	0x024	/**< B4-B7 input selectors */
103824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELINC30	0x040	/**< C0-C3 input selectors */
104824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELINC74	0x044	/**< C4-C7 input selectors */
105824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELIND30	0x060	/**< D0-D3 input selectors */
106824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELIND74	0x064	/**< D4-D7 input selectors */
107824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTA30	0x100	/**< A0-A3 output selectors */
108824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTA74	0x104	/**< A4-A7 output selectors */
109824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTB30	0x120	/**< B0-B3 output selectors */
110824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTB74	0x124	/**< B4-B7 output selectors */
111824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTC30	0x140	/**< C0-C3 output selectors */
112824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTC74	0x144	/**< C4-C7 output selectors */
113824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTD30	0x160	/**< D0-D3 output selectors */
114824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUTD74	0x164	/**< D4-D7 output selectors */
1154ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSYNCA	0x200
1164ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSELOUTAEN	0x204
1174ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSYNCB	0x220
1184ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSELOUTBEN	0x224
1194ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSYNCC	0x240
1204ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSELOUTCEN	0x244
1214ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSYNCD	0x260
1224ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBSELOUTDEN	0x264
1234ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBAEXTWIDTH	0x300
1244ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBAINWIDTH	0x304
1254ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBAOUTWIDTH	0x308
1264ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBBEXTWIDTH	0x320
1274ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBBINWIDTH	0x324
1284ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBBOUTWIDTH	0x328
1294ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBCEXTWIDTH	0x340
1304ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBCINWIDTH	0x344
1314ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBCOUTWIDTH	0x348
1324ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBDEXTWIDTH	0x360
1334ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBDINWIDTH	0x364
1344ad7e9b0SAdrian Chadd #define	BCMA_DMP_OOBDOUTWIDTH	0x368
1354ad7e9b0SAdrian Chadd 
136824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL(_base, _bank, _sel)	\
137824b48efSLandon J. Fuller     (_base + (_bank * 8) + (_sel >= 4 ? 4 : 0))
138824b48efSLandon J. Fuller 
139824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELIN(_bank, _sel)		\
140824b48efSLandon J. Fuller 	BCMA_DMP_OOBSEL(BCMA_DMP_OOBSELINA30, _bank, _sel)
141824b48efSLandon J. Fuller 
142824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUT(_bank, _sel)		\
143824b48efSLandon J. Fuller 	BCMA_DMP_OOBSEL(BCMA_DMP_OOBSELOUTA30, _bank, _sel)
144824b48efSLandon J. Fuller 
145824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSYNC(_bank)		(BCMA_DMP_OOBSYNCA + (_bank * 8))
146824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSELOUT_EN(_bank)	(BCMA_DMP_OOBSELOUTAEN + (_bank * 8))
147824b48efSLandon J. Fuller #define	BCMA_DMP_OOB_EXTWIDTH(_bank)	(BCMA_DMP_OOBAEXTWIDTH + (_bank * 12))
148824b48efSLandon J. Fuller #define	BCMA_DMP_OOB_INWIDTH(_bank)	(BCMA_DMP_OOBAINWIDTH + (_bank * 12))
149824b48efSLandon J. Fuller #define	BCMA_DMP_OOB_OUTWIDTH(_bank)	(BCMA_DMP_OOBAOUTWIDTH + (_bank * 12))
150f90f4b65SLandon J. Fuller 
1514ad7e9b0SAdrian Chadd // This was inherited from Broadcom's aidmp.h header
1524ad7e9b0SAdrian Chadd // Is it required for any of our use-cases?
1534ad7e9b0SAdrian Chadd #if 0 /* defined(IL_BIGENDIAN) && defined(BCMHND74K) */
1544ad7e9b0SAdrian Chadd /* Selective swapped defines for those registers we need in
1554ad7e9b0SAdrian Chadd  * big-endian code.
1564ad7e9b0SAdrian Chadd  */
1574ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRLSET	0x404
1584ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRLCLEAR	0x400
1594ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRL		0x40c
1604ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOSTATUS	0x504
1614ad7e9b0SAdrian Chadd #define	BCMA_DMP_RESETCTRL	0x804
1624ad7e9b0SAdrian Chadd #define	BCMA_DMP_RESETSTATUS	0x800
1634ad7e9b0SAdrian Chadd 
1644ad7e9b0SAdrian Chadd #else				/* !IL_BIGENDIAN || !BCMHND74K */
1654ad7e9b0SAdrian Chadd 
1664ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRLSET	0x400
1674ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRLCLEAR	0x404
1684ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRL		0x408
1694ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOSTATUS	0x500
1704ad7e9b0SAdrian Chadd #define	BCMA_DMP_RESETCTRL	0x800
1714ad7e9b0SAdrian Chadd #define	BCMA_DMP_RESETSTATUS	0x804
1724ad7e9b0SAdrian Chadd 
1734ad7e9b0SAdrian Chadd #endif				/* IL_BIGENDIAN && BCMHND74K */
1744ad7e9b0SAdrian Chadd 
1754ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOCTRLWIDTH	0x700
1764ad7e9b0SAdrian Chadd #define	BCMA_DMP_IOSTATUSWIDTH	0x704
1774ad7e9b0SAdrian Chadd 
1784ad7e9b0SAdrian Chadd #define	BCMA_DMP_RESETREADID	0x808
1794ad7e9b0SAdrian Chadd #define	BCMA_DMP_RESETWRITEID	0x80c
1804ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGCTRL	0xa00
1814ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGDONE	0xa04
1824ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGSTATUS	0xa08
1834ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGADDRLO	0xa0c
1844ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGADDRHI	0xa10
1854ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGID	0xa14
1864ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGUSER	0xa18
1874ad7e9b0SAdrian Chadd #define	BCMA_DMP_ERRLOGFLAGS	0xa1c
1884ad7e9b0SAdrian Chadd #define	BCMA_DMP_INTSTATUS	0xa00
1894ad7e9b0SAdrian Chadd #define	BCMA_DMP_CONFIG		0xe00
1904ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITCR		0xf00
1914ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBA	0xf10
1924ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBB	0xf14
1934ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBC	0xf18
1944ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBD	0xf1c
1954ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBAOUT	0xf30
1964ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBBOUT	0xf34
1974ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBCOUT	0xf38
1984ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITIPOOBDOUT	0xf3c
1994ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBA	0xf50
2004ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBB	0xf54
2014ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBC	0xf58
2024ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBD	0xf5c
2034ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBAIN	0xf70
2044ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBBIN	0xf74
2054ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBCIN	0xf78
2064ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPOOBDIN	0xf7c
2074ad7e9b0SAdrian Chadd #define	BCMA_DMP_ITOPRESET	0xf90
2084ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID4	0xfd0
2094ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID5	0xfd4
2104ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID6	0xfd8
2114ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID7	0xfdc
2124ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID0	0xfe0
2134ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID1	0xfe4
2144ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID2	0xfe8
2154ad7e9b0SAdrian Chadd #define	BCMA_DMP_PERIPHERIALID3	0xfec
2164ad7e9b0SAdrian Chadd #define	BCMA_DMP_COMPONENTID0	0xff0
2174ad7e9b0SAdrian Chadd #define	BCMA_DMP_COMPONENTID1	0xff4
2184ad7e9b0SAdrian Chadd #define	BCMA_DMP_COMPONENTID2	0xff8
2194ad7e9b0SAdrian Chadd #define	BCMA_DMP_COMPONENTID3	0xffc
2204ad7e9b0SAdrian Chadd 
221824b48efSLandon J. Fuller /* OOBSEL(IN|OUT) */
222824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_MASK		0xFF		/**< OOB selector mask */
223824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_EN		(1<<7)		/**< OOB selector enable bit */
2246467a17bSLandon J. Fuller #define	BCMA_DMP_OOBSEL_SHIFT(_sel)	((_sel % 4) * 8)
225824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_BUSLINE_MASK	0x7F		/**< OOB selector bus line mask */
226824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_BUSLINE_SHIFT	0
227824b48efSLandon J. Fuller 
228824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_0_MASK	BCMA_DMP_OOBSEL_MASK
229824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_1_MASK	BCMA_DMP_OOBSEL_MASK
230824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_2_MASK	BCMA_DMP_OOBSEL_MASK
231824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_3_MASK	BCMA_DMP_OOBSEL_MASK
232824b48efSLandon J. Fuller 
233824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_4_MASK	BCMA_DMP_OOBSEL_MASK
234824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_5_MASK	BCMA_DMP_OOBSEL_MASK
235824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_6_MASK	BCMA_DMP_OOBSEL_MASK
236824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_7_MASK	BCMA_DMP_OOBSEL_MASK
237824b48efSLandon J. Fuller 
238824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_0_SHIFT	BCMA_DMP_OOBSEL_SHIFT(0)
239824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_1_SHIFT	BCMA_DMP_OOBSEL_SHIFT(1)
240824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_2_SHIFT	BCMA_DMP_OOBSEL_SHIFT(2)
241824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_3_SHIFT	BCMA_DMP_OOBSEL_SHIFT(3)
242824b48efSLandon J. Fuller 
243824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_4_SHIFT	BCMA_DMP_OOBSEL_0_SHIFT
244824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_5_SHIFT	BCMA_DMP_OOBSEL_1_SHIFT
245824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_6_SHIFT	BCMA_DMP_OOBSEL_2_SHIFT
246824b48efSLandon J. Fuller #define	BCMA_DMP_OOBSEL_7_SHIFT	BCMA_DMP_OOBSEL_3_SHIFT
247824b48efSLandon J. Fuller 
2488a03f98aSLandon J. Fuller /* ioctrl */
2498a03f98aSLandon J. Fuller #define	BCMA_DMP_IOCTRL_MASK	0x0000FFFF
2508a03f98aSLandon J. Fuller 
2518a03f98aSLandon J. Fuller /* iostatus */
2528a03f98aSLandon J. Fuller #define	BCMA_DMP_IOST_MASK	0x0000FFFF
2538a03f98aSLandon J. Fuller 
2544ad7e9b0SAdrian Chadd /* resetctrl */
255ba3eb10dSMichael Zhilin #define	BCMA_DMP_RC_RESET	0x00000001
2564ad7e9b0SAdrian Chadd 
2574ad7e9b0SAdrian Chadd /* config */
2584ad7e9b0SAdrian Chadd #define	BCMA_DMP_CFG_OOB	0x00000020
2594ad7e9b0SAdrian Chadd #define	BCMA_DMP_CFG_IOS	0x00000010
2604ad7e9b0SAdrian Chadd #define	BCMA_DMP_CFGIOC		0x00000008
2614ad7e9b0SAdrian Chadd #define	BCMA_DMP_CFGTO		0x00000004
2624ad7e9b0SAdrian Chadd #define	BCMA_DMP_CFGERRL	0x00000002
2634ad7e9b0SAdrian Chadd #define	BCMA_DMP_CFGRST		0x00000001
2644ad7e9b0SAdrian Chadd 
2654ad7e9b0SAdrian Chadd #endif /* _BCMA_BCMA_DMP_H_ */
266