Lines Matching +full:active +full:- +full:delay +full:- +full:ms
1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd.
9 #include <linux/delay.h>
20 #define TEST_CLK_STABLE_TIME 2 /* unit:ms */
21 #define PHY_CLK_STABLE_TIME 2 /* unit:ms */
22 #define UTMI_RST_COMPLETE_TIME 2 /* unit:ms */
34 #define PHY0_TEST_CLK BIT(22) /* rising edge active */
35 #define PHY0_TEST_RST BIT(23) /* low active */
40 #define PHY1_TEST_CLK BIT(14) /* rising edge active */
41 #define PHY1_TEST_RST BIT(15) /* low active */
61 void __iomem *reg = priv->mmio; in hisi_inno_phy_write_reg()
65 if (priv->type == PHY_TYPE_0) in hisi_inno_phy_write_reg()
78 if (priv->type == PHY_TYPE_0) in hisi_inno_phy_write_reg()
97 struct hisi_inno_phy_priv *priv = port->priv; in hisi_inno_phy_init()
100 ret = clk_prepare_enable(priv->ref_clk); in hisi_inno_phy_init()
105 reset_control_deassert(priv->por_rst); in hisi_inno_phy_init()
111 reset_control_deassert(port->utmi_rst); in hisi_inno_phy_init()
120 struct hisi_inno_phy_priv *priv = port->priv; in hisi_inno_phy_exit()
122 reset_control_assert(port->utmi_rst); in hisi_inno_phy_exit()
123 reset_control_assert(priv->por_rst); in hisi_inno_phy_exit()
124 clk_disable_unprepare(priv->ref_clk); in hisi_inno_phy_exit()
137 struct device *dev = &pdev->dev; in hisi_inno_phy_probe()
138 struct device_node *np = dev->of_node; in hisi_inno_phy_probe()
146 return -ENOMEM; in hisi_inno_phy_probe()
148 priv->mmio = devm_platform_ioremap_resource(pdev, 0); in hisi_inno_phy_probe()
149 if (IS_ERR(priv->mmio)) { in hisi_inno_phy_probe()
150 ret = PTR_ERR(priv->mmio); in hisi_inno_phy_probe()
154 priv->ref_clk = devm_clk_get(dev, NULL); in hisi_inno_phy_probe()
155 if (IS_ERR(priv->ref_clk)) in hisi_inno_phy_probe()
156 return PTR_ERR(priv->ref_clk); in hisi_inno_phy_probe()
158 priv->por_rst = devm_reset_control_get_exclusive(dev, NULL); in hisi_inno_phy_probe()
159 if (IS_ERR(priv->por_rst)) in hisi_inno_phy_probe()
160 return PTR_ERR(priv->por_rst); in hisi_inno_phy_probe()
162 priv->type = (uintptr_t) of_device_get_match_data(dev); in hisi_inno_phy_probe()
172 priv->ports[i].utmi_rst = rst; in hisi_inno_phy_probe()
173 priv->ports[i].priv = priv; in hisi_inno_phy_probe()
180 phy_set_drvdata(phy, &priv->ports[i]); in hisi_inno_phy_probe()
194 { .compatible = "hisilicon,inno-usb2-phy",
196 { .compatible = "hisilicon,hi3798cv200-usb2-phy",
198 { .compatible = "hisilicon,hi3798mv100-usb2-phy",
207 .name = "hisi-inno-phy",