xref: /openbmc/u-boot/arch/arm/mach-socfpga/wrap_iocsr_config.c (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
2ca62d2e1SMarek Vasut /*
3ca62d2e1SMarek Vasut  * Copyright (C) 2015 Marek Vasut <marex@denx.de>
4ca62d2e1SMarek Vasut  */
5ca62d2e1SMarek Vasut 
6ca62d2e1SMarek Vasut #include <common.h>
7ca62d2e1SMarek Vasut #include <errno.h>
8ca62d2e1SMarek Vasut #include <asm/arch/clock_manager.h>
9f6badb0dSMarek Vasut 
10f6badb0dSMarek Vasut /* Board-specific header. */
11f6badb0dSMarek Vasut #include <qts/iocsr_config.h>
12ca62d2e1SMarek Vasut 
iocsr_get_config_table(const unsigned int chain_id,const unsigned long ** table,unsigned int * table_len)13ca62d2e1SMarek Vasut int iocsr_get_config_table(const unsigned int chain_id,
14ca62d2e1SMarek Vasut 			   const unsigned long **table,
15ca62d2e1SMarek Vasut 			   unsigned int *table_len)
16ca62d2e1SMarek Vasut {
17ca62d2e1SMarek Vasut 	switch (chain_id) {
18ca62d2e1SMarek Vasut 	case 0:
19ca62d2e1SMarek Vasut 		*table = iocsr_scan_chain0_table;
20ca62d2e1SMarek Vasut 		*table_len = CONFIG_HPS_IOCSR_SCANCHAIN0_LENGTH;
21ca62d2e1SMarek Vasut 		break;
22ca62d2e1SMarek Vasut 	case 1:
23ca62d2e1SMarek Vasut 		*table = iocsr_scan_chain1_table;
24ca62d2e1SMarek Vasut 		*table_len = CONFIG_HPS_IOCSR_SCANCHAIN1_LENGTH;
25ca62d2e1SMarek Vasut 		break;
26ca62d2e1SMarek Vasut 	case 2:
27ca62d2e1SMarek Vasut 		*table = iocsr_scan_chain2_table;
28ca62d2e1SMarek Vasut 		*table_len = CONFIG_HPS_IOCSR_SCANCHAIN2_LENGTH;
29ca62d2e1SMarek Vasut 		break;
30ca62d2e1SMarek Vasut 	case 3:
31ca62d2e1SMarek Vasut 		*table = iocsr_scan_chain3_table;
32ca62d2e1SMarek Vasut 		*table_len = CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH;
33ca62d2e1SMarek Vasut 		break;
34ca62d2e1SMarek Vasut 	default:
35ca62d2e1SMarek Vasut 		return -EINVAL;
36ca62d2e1SMarek Vasut 	}
37ca62d2e1SMarek Vasut 
38ca62d2e1SMarek Vasut 	return 0;
39ca62d2e1SMarek Vasut }
40