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