// SPDX-License-Identifier: GPL-2.0
/*
* The MT7623 driver based on Linux generic pinctrl binding.
*
* Copyright (C) 2015 - 2018 MediaTek Inc.
* Author: Biao Huang <biao.huang@mediatek.com>
* Ryder Lee <ryder.lee@mediatek.com>
* Sean Wang <sean.wang@mediatek.com>
*/
#include "pinctrl-moore.h"
#define PIN_BOND_REG0 0xb10
#define PIN_BOND_REG1 0xf20
#define PIN_BOND_REG2 0xef0
#define BOND_PCIE_CLR (0x77 << 3)
#define BOND_I2S_CLR 0x3
#define BOND_MSDC0E_CLR 0x1
#define PIN_FIELD15(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit, \
_x_bits, 15, false)
#define PIN_FIELD16(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit, \
_x_bits, 16, 0)
#define PINS_FIELD16(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit, \
_x_bits, 16, 1)
#define MT7623_PIN(_number, _name, _eint_n, _drv_grp) \
MTK_PIN(_number, _name, 0, _eint_n, _drv_grp)
static const struct mtk_pin_field_calc mt7623_pin_mode_range[] = {
PIN_FIELD15(0, 278, 0x760, 0x10, 0, 3),
};
static const struct mtk_pin_field_calc mt7623_pin_dir_range[] = {
PIN_FIELD16(0, 175, 0x0, 0x10, 0, 1),
PIN_FIELD16(176, 278, 0xc0, 0x10, 0, 1),
};
static const struct mtk_pin_field_calc mt7623_pin_di_range[] = {
PIN_FIELD16(0, 278, 0x630, 0x10, 0, 1),
};
static const struct mtk_pin_field_calc mt7623_pin_do_range[] = {
PIN_FIELD16(0, 278, 0x500, 0x10, 0, 1),
};
static const struct mtk_pin_field_calc mt7623_pin_ies_range[] = {
PINS_FIELD16(0, 6, 0xb20, 0x10, 0, 1),
PINS_FIELD16(7, 9, 0xb20, 0x10, 1, 1),
PINS_FIELD16(10, 13, 0xb30, 0x10, 3, 1),
PINS_FI