/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * xhci-mtk-unusuallib.h -- xhci toolkit header file
 *
 * Copyright (C) 2021 Mediatek Inc - http://www.mediatek.com
 *
 * Author: Zhanyong Wang <zhanyong.wang@mediatek.com>
 */

 DEVICE_ATTR_DECLARED(RG_USB20_INTR_EN);
 DEVICE_ATTR_DECLARED(RG_USB20_VRT_VREF_SEL);
 DEVICE_ATTR_DECLARED(RG_USB20_TERM_VREF_SEL);
 DEVICE_ATTR_DECLARED(RG_USB20_HSTX_SRCTRL);
 DEVICE_ATTR_DECLARED(RG_USB20_DISCTH);
 DEVICE_ATTR_DECLARED(RG_CHGDT_EN);
 DEVICE_ATTR_DECLARED(RG_USB20_PHY_REV);
 DEVICE_ATTR_DECLARED(reg);

 #define HQA_INFORMACTION_COLLECTS() do {\
	ECHO_HQA(USB20_PHY_USBPHYACR0, RG_USB20_INTR_EN, 1); \
	ECHO_HQA(USB20_PHY_USBPHYACR1, RG_USB20_VRT_VREF_SEL, 3); \
	ECHO_HQA(USB20_PHY_USBPHYACR1, RG_USB20_TERM_VREF_SEL, 3); \
	ECHO_HQA(USB20_PHY_USBPHYACR5, RG_USB20_HSTX_SRCTRL, 3); \
	ECHO_HQA(USB20_PHY_USBPHYACR6, RG_USB20_DISCTH, 4); \
	ECHO_HQA(USB20_PHY_U2PHYBC12C, RG_CHGDT_EN, 1); \
	ECHO_HQA(USB20_PHY_USBPHYACR6, RG_USB20_PHY_REV, 2); \
	} while (0)

