162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef BCMA_SCAN_H_
362306a36Sopenharmony_ci#define BCMA_SCAN_H_
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#define BCMA_ADDR_BASE		0x18000000
662306a36Sopenharmony_ci#define BCMA_WRAP_BASE		0x18100000
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#define SCAN_ER_VALID		0x00000001
962306a36Sopenharmony_ci#define SCAN_ER_TAGX		0x00000006 /* we have to ignore 0x8 bit when checking tag for SCAN_ER_TAG_ADDR */
1062306a36Sopenharmony_ci#define SCAN_ER_TAG		0x0000000E
1162306a36Sopenharmony_ci#define  SCAN_ER_TAG_CI		0x00000000
1262306a36Sopenharmony_ci#define  SCAN_ER_TAG_MP		0x00000002
1362306a36Sopenharmony_ci#define  SCAN_ER_TAG_ADDR	0x00000004
1462306a36Sopenharmony_ci#define  SCAN_ER_TAG_END	0x0000000E
1562306a36Sopenharmony_ci#define SCAN_ER_BAD		0xFFFFFFFF
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define SCAN_CIA_CLASS		0x000000F0
1862306a36Sopenharmony_ci#define SCAN_CIA_CLASS_SHIFT	4
1962306a36Sopenharmony_ci#define SCAN_CIA_ID		0x000FFF00
2062306a36Sopenharmony_ci#define SCAN_CIA_ID_SHIFT	8
2162306a36Sopenharmony_ci#define SCAN_CIA_MANUF		0xFFF00000
2262306a36Sopenharmony_ci#define SCAN_CIA_MANUF_SHIFT	20
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#define SCAN_CIB_NMP		0x000001F0
2562306a36Sopenharmony_ci#define SCAN_CIB_NMP_SHIFT	4
2662306a36Sopenharmony_ci#define SCAN_CIB_NSP		0x00003E00
2762306a36Sopenharmony_ci#define SCAN_CIB_NSP_SHIFT	9
2862306a36Sopenharmony_ci#define SCAN_CIB_NMW		0x0007C000
2962306a36Sopenharmony_ci#define SCAN_CIB_NMW_SHIFT	14
3062306a36Sopenharmony_ci#define SCAN_CIB_NSW		0x00F80000
3162306a36Sopenharmony_ci#define SCAN_CIB_NSW_SHIFT	19
3262306a36Sopenharmony_ci#define SCAN_CIB_REV		0xFF000000
3362306a36Sopenharmony_ci#define SCAN_CIB_REV_SHIFT	24
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#define SCAN_ADDR_AG32		0x00000008
3662306a36Sopenharmony_ci#define SCAN_ADDR_SZ		0x00000030
3762306a36Sopenharmony_ci#define SCAN_ADDR_SZ_SHIFT	4
3862306a36Sopenharmony_ci#define  SCAN_ADDR_SZ_4K	0x00000000
3962306a36Sopenharmony_ci#define  SCAN_ADDR_SZ_8K	0x00000010
4062306a36Sopenharmony_ci#define  SCAN_ADDR_SZ_16K	0x00000020
4162306a36Sopenharmony_ci#define  SCAN_ADDR_SZ_SZD	0x00000030
4262306a36Sopenharmony_ci#define SCAN_ADDR_TYPE		0x000000C0
4362306a36Sopenharmony_ci#define  SCAN_ADDR_TYPE_SLAVE	0x00000000
4462306a36Sopenharmony_ci#define  SCAN_ADDR_TYPE_BRIDGE	0x00000040
4562306a36Sopenharmony_ci#define  SCAN_ADDR_TYPE_SWRAP	0x00000080
4662306a36Sopenharmony_ci#define  SCAN_ADDR_TYPE_MWRAP	0x000000C0
4762306a36Sopenharmony_ci#define SCAN_ADDR_PORT		0x00000F00
4862306a36Sopenharmony_ci#define SCAN_ADDR_PORT_SHIFT	8
4962306a36Sopenharmony_ci#define SCAN_ADDR_ADDR		0xFFFFF000
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci#define SCAN_ADDR_SZ_BASE	0x00001000	/* 4KB */
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci#define SCAN_SIZE_SZ_ALIGN	0x00000FFF
5462306a36Sopenharmony_ci#define SCAN_SIZE_SZ		0xFFFFF000
5562306a36Sopenharmony_ci#define SCAN_SIZE_SG32		0x00000008
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci#endif /* BCMA_SCAN_H_ */
58