1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2018
4  * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc
5  */
6 
7 #ifndef _MPC83XX_SOC_H_
8 #define _MPC83XX_SOC_H_
9 
10 enum soc_type {
11 	SOC_MPC8308,
12 	SOC_MPC8309,
13 	SOC_MPC8313,
14 	SOC_MPC8315,
15 	SOC_MPC832X,
16 	SOC_MPC8349,
17 	SOC_MPC8360,
18 	SOC_MPC8379,
19 };
20 
21 bool mpc83xx_has_sdhc(int type)
22 {
23 	return (type == SOC_MPC8308) ||
24 	       (type == SOC_MPC8309) ||
25 	       (type == SOC_MPC8379);
26 }
27 
28 bool mpc83xx_has_tsec(int type)
29 {
30 	return (type == SOC_MPC8308) ||
31 	       (type == SOC_MPC8313) ||
32 	       (type == SOC_MPC8315) ||
33 	       (type == SOC_MPC8349) ||
34 	       (type == SOC_MPC8379);
35 }
36 
37 bool mpc83xx_has_pcie1(int type)
38 {
39 	return (type == SOC_MPC8308) ||
40 	       (type == SOC_MPC8315) ||
41 	       (type == SOC_MPC8379);
42 }
43 
44 bool mpc83xx_has_pcie2(int type)
45 {
46 	return (type == SOC_MPC8315) ||
47 	       (type == SOC_MPC8379);
48 }
49 
50 bool mpc83xx_has_sata(int type)
51 {
52 	return (type == SOC_MPC8315) ||
53 	       (type == SOC_MPC8379);
54 }
55 
56 bool mpc83xx_has_pci(int type)
57 {
58 	return type != SOC_MPC8308;
59 }
60 
61 bool mpc83xx_has_second_i2c(int type)
62 {
63 	return (type != SOC_MPC8315) &&
64 	       (type != SOC_MPC832X);
65 }
66 
67 bool mpc83xx_has_quicc_engine(int type)
68 {
69 	return (type == SOC_MPC8309) ||
70 	       (type == SOC_MPC832X) ||
71 	       (type == SOC_MPC8360);
72 }
73 
74 #endif /* _MPC83XX_SOC_H_ */
75