/* 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(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); \
	} while (0)

