162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * MFD internals for Renesas RZ/G2L MTU3 Core driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2023 Renesas Electronics Corporation
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef RZ_MTU3_MFD_H
962306a36Sopenharmony_ci#define RZ_MTU3_MFD_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define MTU_8BIT_CH_0(_tier, _nfcr, _tcr, _tcr2, _tmdr1, _tiorh, _tiorl, _tbtm) \
1262306a36Sopenharmony_ci	{ \
1362306a36Sopenharmony_ci		[RZ_MTU3_TIER] = _tier, \
1462306a36Sopenharmony_ci		[RZ_MTU3_NFCR] = _nfcr, \
1562306a36Sopenharmony_ci		[RZ_MTU3_TCR] = _tcr, \
1662306a36Sopenharmony_ci		[RZ_MTU3_TCR2] = _tcr2, \
1762306a36Sopenharmony_ci		[RZ_MTU3_TMDR1] = _tmdr1, \
1862306a36Sopenharmony_ci		[RZ_MTU3_TIORH] = _tiorh, \
1962306a36Sopenharmony_ci		[RZ_MTU3_TIORL] = _tiorl, \
2062306a36Sopenharmony_ci		[RZ_MTU3_TBTM] = _tbtm \
2162306a36Sopenharmony_ci	}
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#define MTU_8BIT_CH_1_2(_tier, _nfcr, _tsr, _tcr, _tcr2, _tmdr1, _tior) \
2462306a36Sopenharmony_ci	{ \
2562306a36Sopenharmony_ci		[RZ_MTU3_TIER] = _tier, \
2662306a36Sopenharmony_ci		[RZ_MTU3_NFCR] = _nfcr, \
2762306a36Sopenharmony_ci		[RZ_MTU3_TSR] = _tsr, \
2862306a36Sopenharmony_ci		[RZ_MTU3_TCR] = _tcr, \
2962306a36Sopenharmony_ci		[RZ_MTU3_TCR2] = _tcr2, \
3062306a36Sopenharmony_ci		[RZ_MTU3_TMDR1] = _tmdr1, \
3162306a36Sopenharmony_ci		[RZ_MTU3_TIOR] = _tior \
3262306a36Sopenharmony_ci	} \
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#define MTU_8BIT_CH_3_4_6_7(_tier, _nfcr, _tsr, _tcr, _tcr2, _tmdr1, _tiorh, _tiorl, _tbtm) \
3562306a36Sopenharmony_ci	{ \
3662306a36Sopenharmony_ci		[RZ_MTU3_TIER] = _tier, \
3762306a36Sopenharmony_ci		[RZ_MTU3_NFCR] = _nfcr, \
3862306a36Sopenharmony_ci		[RZ_MTU3_TSR] = _tsr, \
3962306a36Sopenharmony_ci		[RZ_MTU3_TCR] = _tcr, \
4062306a36Sopenharmony_ci		[RZ_MTU3_TCR2] = _tcr2, \
4162306a36Sopenharmony_ci		[RZ_MTU3_TMDR1] = _tmdr1, \
4262306a36Sopenharmony_ci		[RZ_MTU3_TIORH] = _tiorh, \
4362306a36Sopenharmony_ci		[RZ_MTU3_TIORL] = _tiorl, \
4462306a36Sopenharmony_ci		[RZ_MTU3_TBTM] = _tbtm \
4562306a36Sopenharmony_ci	} \
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci#define MTU_8BIT_CH_5(_tier, _nfcr, _tstr, _tcntcmpclr, _tcru, _tcr2u, _tioru, \
4862306a36Sopenharmony_ci		      _tcrv, _tcr2v, _tiorv, _tcrw, _tcr2w, _tiorw) \
4962306a36Sopenharmony_ci	{ \
5062306a36Sopenharmony_ci		[RZ_MTU3_TIER] = _tier, \
5162306a36Sopenharmony_ci		[RZ_MTU3_NFCR] = _nfcr, \
5262306a36Sopenharmony_ci		[RZ_MTU3_TSTR] = _tstr, \
5362306a36Sopenharmony_ci		[RZ_MTU3_TCNTCMPCLR] = _tcntcmpclr, \
5462306a36Sopenharmony_ci		[RZ_MTU3_TCRU] = _tcru, \
5562306a36Sopenharmony_ci		[RZ_MTU3_TCR2U] = _tcr2u, \
5662306a36Sopenharmony_ci		[RZ_MTU3_TIORU] = _tioru, \
5762306a36Sopenharmony_ci		[RZ_MTU3_TCRV] = _tcrv, \
5862306a36Sopenharmony_ci		[RZ_MTU3_TCR2V] = _tcr2v, \
5962306a36Sopenharmony_ci		[RZ_MTU3_TIORV] = _tiorv, \
6062306a36Sopenharmony_ci		[RZ_MTU3_TCRW] = _tcrw, \
6162306a36Sopenharmony_ci		[RZ_MTU3_TCR2W] = _tcr2w, \
6262306a36Sopenharmony_ci		[RZ_MTU3_TIORW] = _tiorw \
6362306a36Sopenharmony_ci	} \
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci#define MTU_8BIT_CH_8(_tier, _nfcr, _tcr, _tcr2, _tmdr1, _tiorh, _tiorl) \
6662306a36Sopenharmony_ci	{ \
6762306a36Sopenharmony_ci		[RZ_MTU3_TIER] = _tier, \
6862306a36Sopenharmony_ci		[RZ_MTU3_NFCR] = _nfcr, \
6962306a36Sopenharmony_ci		[RZ_MTU3_TCR] = _tcr, \
7062306a36Sopenharmony_ci		[RZ_MTU3_TCR2] = _tcr2, \
7162306a36Sopenharmony_ci		[RZ_MTU3_TMDR1] = _tmdr1, \
7262306a36Sopenharmony_ci		[RZ_MTU3_TIORH] = _tiorh, \
7362306a36Sopenharmony_ci		[RZ_MTU3_TIORL] = _tiorl \
7462306a36Sopenharmony_ci	} \
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci#define MTU_16BIT_CH_0(_tcnt, _tgra, _tgrb, _tgrc, _tgrd, _tgre, _tgrf) \
7762306a36Sopenharmony_ci	{ \
7862306a36Sopenharmony_ci		[RZ_MTU3_TCNT] = _tcnt, \
7962306a36Sopenharmony_ci		[RZ_MTU3_TGRA] = _tgra, \
8062306a36Sopenharmony_ci		[RZ_MTU3_TGRB] = _tgrb, \
8162306a36Sopenharmony_ci		[RZ_MTU3_TGRC] = _tgrc, \
8262306a36Sopenharmony_ci		[RZ_MTU3_TGRD] = _tgrd, \
8362306a36Sopenharmony_ci		[RZ_MTU3_TGRE] = _tgre, \
8462306a36Sopenharmony_ci		[RZ_MTU3_TGRF] = _tgrf \
8562306a36Sopenharmony_ci	}
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci#define MTU_16BIT_CH_1_2(_tcnt, _tgra, _tgrb) \
8862306a36Sopenharmony_ci	{ \
8962306a36Sopenharmony_ci		[RZ_MTU3_TCNT] = _tcnt, \
9062306a36Sopenharmony_ci		[RZ_MTU3_TGRA] = _tgra, \
9162306a36Sopenharmony_ci		[RZ_MTU3_TGRB] = _tgrb \
9262306a36Sopenharmony_ci	}
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci#define MTU_16BIT_CH_3_6(_tcnt, _tgra, _tgrb, _tgrc, _tgrd, _tgre) \
9562306a36Sopenharmony_ci	{ \
9662306a36Sopenharmony_ci		[RZ_MTU3_TCNT] = _tcnt, \
9762306a36Sopenharmony_ci		[RZ_MTU3_TGRA] = _tgra, \
9862306a36Sopenharmony_ci		[RZ_MTU3_TGRB] = _tgrb, \
9962306a36Sopenharmony_ci		[RZ_MTU3_TGRC] = _tgrc, \
10062306a36Sopenharmony_ci		[RZ_MTU3_TGRD] = _tgrd, \
10162306a36Sopenharmony_ci		[RZ_MTU3_TGRE] = _tgre \
10262306a36Sopenharmony_ci	}
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci#define MTU_16BIT_CH_4_7(_tcnt, _tgra, _tgrb, _tgrc, _tgrd, _tgre, _tgrf, \
10562306a36Sopenharmony_ci			  _tadcr, _tadcora, _tadcorb, _tadcobra, _tadcobrb) \
10662306a36Sopenharmony_ci	{ \
10762306a36Sopenharmony_ci		[RZ_MTU3_TCNT] = _tcnt, \
10862306a36Sopenharmony_ci		[RZ_MTU3_TGRA] = _tgra, \
10962306a36Sopenharmony_ci		[RZ_MTU3_TGRB] = _tgrb, \
11062306a36Sopenharmony_ci		[RZ_MTU3_TGRC] = _tgrc, \
11162306a36Sopenharmony_ci		[RZ_MTU3_TGRD] = _tgrd, \
11262306a36Sopenharmony_ci		[RZ_MTU3_TGRE] = _tgre, \
11362306a36Sopenharmony_ci		[RZ_MTU3_TGRF] = _tgrf, \
11462306a36Sopenharmony_ci		[RZ_MTU3_TADCR] = _tadcr, \
11562306a36Sopenharmony_ci		[RZ_MTU3_TADCORA] = _tadcora, \
11662306a36Sopenharmony_ci		[RZ_MTU3_TADCORB] = _tadcorb, \
11762306a36Sopenharmony_ci		[RZ_MTU3_TADCOBRA] = _tadcobra, \
11862306a36Sopenharmony_ci		[RZ_MTU3_TADCOBRB] = _tadcobrb \
11962306a36Sopenharmony_ci	}
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci#define MTU_16BIT_CH_5(_tcntu, _tgru, _tcntv, _tgrv, _tcntw, _tgrw) \
12262306a36Sopenharmony_ci	{ \
12362306a36Sopenharmony_ci		[RZ_MTU3_TCNTU] = _tcntu, \
12462306a36Sopenharmony_ci		[RZ_MTU3_TGRU] = _tgru, \
12562306a36Sopenharmony_ci		[RZ_MTU3_TCNTV] = _tcntv, \
12662306a36Sopenharmony_ci		[RZ_MTU3_TGRV] = _tgrv, \
12762306a36Sopenharmony_ci		[RZ_MTU3_TCNTW] = _tcntw, \
12862306a36Sopenharmony_ci		[RZ_MTU3_TGRW] = _tgrw \
12962306a36Sopenharmony_ci	}
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci#define MTU_32BIT_CH_1(_tcntlw, _tgralw, _tgrblw) \
13262306a36Sopenharmony_ci	{ \
13362306a36Sopenharmony_ci	       [RZ_MTU3_TCNTLW] = _tcntlw, \
13462306a36Sopenharmony_ci	       [RZ_MTU3_TGRALW] = _tgralw, \
13562306a36Sopenharmony_ci	       [RZ_MTU3_TGRBLW] = _tgrblw \
13662306a36Sopenharmony_ci	}
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci#define MTU_32BIT_CH_8(_tcnt, _tgra, _tgrb, _tgrc, _tgrd) \
13962306a36Sopenharmony_ci	{ \
14062306a36Sopenharmony_ci	       [RZ_MTU3_TCNT] = _tcnt, \
14162306a36Sopenharmony_ci	       [RZ_MTU3_TGRA] = _tgra, \
14262306a36Sopenharmony_ci	       [RZ_MTU3_TGRB] = _tgrb, \
14362306a36Sopenharmony_ci	       [RZ_MTU3_TGRC] = _tgrc, \
14462306a36Sopenharmony_ci	       [RZ_MTU3_TGRD] = _tgrd \
14562306a36Sopenharmony_ci	}
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci#endif
148