1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * MFD internals for Renesas RZ/G2L MTU3 Core driver
4 *
5 * Copyright (C) 2023 Renesas Electronics Corporation
6 */
7
8#ifndef RZ_MTU3_MFD_H
9#define RZ_MTU3_MFD_H
10
11#define MTU_8BIT_CH_0(_tier, _nfcr, _tcr, _tcr2, _tmdr1, _tiorh, _tiorl, _tbtm) \
12	{ \
13		[RZ_MTU3_TIER] = _tier, \
14		[RZ_MTU3_NFCR] = _nfcr, \
15		[RZ_MTU3_TCR] = _tcr, \
16		[RZ_MTU3_TCR2] = _tcr2, \
17		[RZ_MTU3_TMDR1] = _tmdr1, \
18		[RZ_MTU3_TIORH] = _tiorh, \
19		[RZ_MTU3_TIORL] = _tiorl, \
20		[RZ_MTU3_TBTM] = _tbtm \
21	}
22
23#define MTU_8BIT_CH_1_2(_tier, _nfcr, _tsr, _tcr, _tcr2, _tmdr1, _tior) \
24	{ \
25		[RZ_MTU3_TIER] = _tier, \
26		[RZ_MTU3_NFCR] = _nfcr, \
27		[RZ_MTU3_TSR] = _tsr, \
28		[RZ_MTU3_TCR] = _tcr, \
29		[RZ_MTU3_TCR2] = _tcr2, \
30		[RZ_MTU3_TMDR1] = _tmdr1, \
31		[RZ_MTU3_TIOR] = _tior \
32	} \
33
34#define MTU_8BIT_CH_3_4_6_7(_tier, _nfcr, _tsr, _tcr, _tcr2, _tmdr1, _tiorh, _tiorl, _tbtm) \
35	{ \
36		[RZ_MTU3_TIER] = _tier, \
37		[RZ_MTU3_NFCR] = _nfcr, \
38		[RZ_MTU3_TSR] = _tsr, \
39		[RZ_MTU3_TCR] = _tcr, \
40		[RZ_MTU3_TCR2] = _tcr2, \
41		[RZ_MTU3_TMDR1] = _tmdr1, \
42		[RZ_MTU3_TIORH] = _tiorh, \
43		[RZ_MTU3_TIORL] = _tiorl, \
44		[RZ_MTU3_TBTM] = _tbtm \
45	} \
46
47#define MTU_8BIT_CH_5(_tier, _nfcr, _tstr, _tcntcmpclr, _tcru, _tcr2u, _tioru, \
48		      _tcrv, _tcr2v, _tiorv, _tcrw, _tcr2w, _tiorw) \
49	{ \
50		[RZ_MTU3_TIER] = _tier, \
51		[RZ_MTU3_NFCR] = _nfcr, \
52		[RZ_MTU3_TSTR] = _tstr, \
53		[RZ_MTU3_TCNTCMPCLR] = _tcntcmpclr, \
54		[RZ_MTU3_TCRU] = _tcru, \
55		[RZ_MTU3_TCR2U] = _tcr2u, \
56		[RZ_MTU3_TIORU] = _tioru, \
57		[RZ_MTU3_TCRV] = _tcrv, \
58		[RZ_MTU3_TCR2V] = _tcr2v, \
59		[RZ_MTU3_TIORV] = _tiorv, \
60		[RZ_MTU3_TCRW] = _tcrw, \
61		[RZ_MTU3_TCR2W] = _tcr2w, \
62		[RZ_MTU3_TIORW] = _tiorw \
63	} \
64
65#define MTU_8BIT_CH_8(_tier, _nfcr, _tcr, _tcr2, _tmdr1, _tiorh, _tiorl) \
66	{ \
67		[RZ_MTU3_TIER] = _tier, \
68		[RZ_MTU3_NFCR] = _nfcr, \
69		[RZ_MTU3_TCR] = _tcr, \
70		[RZ_MTU3_TCR2] = _tcr2, \
71		[RZ_MTU3_TMDR1] = _tmdr1, \
72		[RZ_MTU3_TIORH] = _tiorh, \
73		[RZ_MTU3_TIORL] = _tiorl \
74	} \
75
76#define MTU_16BIT_CH_0(_tcnt, _tgra, _tgrb, _tgrc, _tgrd, _tgre, _tgrf) \
77	{ \
78		[RZ_MTU3_TCNT] = _tcnt, \
79		[RZ_MTU3_TGRA] = _tgra, \
80		[RZ_MTU3_TGRB] = _tgrb, \
81		[RZ_MTU3_TGRC] = _tgrc, \
82		[RZ_MTU3_TGRD] = _tgrd, \
83		[RZ_MTU3_TGRE] = _tgre, \
84		[RZ_MTU3_TGRF] = _tgrf \
85	}
86
87#define MTU_16BIT_CH_1_2(_tcnt, _tgra, _tgrb) \
88	{ \
89		[RZ_MTU3_TCNT] = _tcnt, \
90		[RZ_MTU3_TGRA] = _tgra, \
91		[RZ_MTU3_TGRB] = _tgrb \
92	}
93
94#define MTU_16BIT_CH_3_6(_tcnt, _tgra, _tgrb, _tgrc, _tgrd, _tgre) \
95	{ \
96		[RZ_MTU3_TCNT] = _tcnt, \
97		[RZ_MTU3_TGRA] = _tgra, \
98		[RZ_MTU3_TGRB] = _tgrb, \
99		[RZ_MTU3_TGRC] = _tgrc, \
100		[RZ_MTU3_TGRD] = _tgrd, \
101		[RZ_MTU3_TGRE] = _tgre \
102	}
103
104#define MTU_16BIT_CH_4_7(_tcnt, _tgra, _tgrb, _tgrc, _tgrd, _tgre, _tgrf, \
105			  _tadcr, _tadcora, _tadcorb, _tadcobra, _tadcobrb) \
106	{ \
107		[RZ_MTU3_TCNT] = _tcnt, \
108		[RZ_MTU3_TGRA] = _tgra, \
109		[RZ_MTU3_TGRB] = _tgrb, \
110		[RZ_MTU3_TGRC] = _tgrc, \
111		[RZ_MTU3_TGRD] = _tgrd, \
112		[RZ_MTU3_TGRE] = _tgre, \
113		[RZ_MTU3_TGRF] = _tgrf, \
114		[RZ_MTU3_TADCR] = _tadcr, \
115		[RZ_MTU3_TADCORA] = _tadcora, \
116		[RZ_MTU3_TADCORB] = _tadcorb, \
117		[RZ_MTU3_TADCOBRA] = _tadcobra, \
118		[RZ_MTU3_TADCOBRB] = _tadcobrb \
119	}
120
121#define MTU_16BIT_CH_5(_tcntu, _tgru, _tcntv, _tgrv, _tcntw, _tgrw) \
122	{ \
123		[RZ_MTU3_TCNTU] = _tcntu, \
124		[RZ_MTU3_TGRU] = _tgru, \
125		[RZ_MTU3_TCNTV] = _tcntv, \
126		[RZ_MTU3_TGRV] = _tgrv, \
127		[RZ_MTU3_TCNTW] = _tcntw, \
128		[RZ_MTU3_TGRW] = _tgrw \
129	}
130
131#define MTU_32BIT_CH_1(_tcntlw, _tgralw, _tgrblw) \
132	{ \
133	       [RZ_MTU3_TCNTLW] = _tcntlw, \
134	       [RZ_MTU3_TGRALW] = _tgralw, \
135	       [RZ_MTU3_TGRBLW] = _tgrblw \
136	}
137
138#define MTU_32BIT_CH_8(_tcnt, _tgra, _tgrb, _tgrc, _tgrd) \
139	{ \
140	       [RZ_MTU3_TCNT] = _tcnt, \
141	       [RZ_MTU3_TGRA] = _tgra, \
142	       [RZ_MTU3_TGRB] = _tgrb, \
143	       [RZ_MTU3_TGRC] = _tgrc, \
144	       [RZ_MTU3_TGRD] = _tgrd \
145	}
146
147#endif
148