Lines Matching +full:powered +full:- +full:on
1 // SPDX-License-Identifier: GPL-2.0
15 #include <dt-bindings/phy/phy.h>
52 bool powered; member
58 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_bandgap_enable()
61 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_bandgap_enable()
67 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_bandgap_disable()
69 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_bandgap_disable()
77 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_dsi_analog_enable()
80 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_dsi_analog_enable()
82 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_dsi_analog_enable()
86 regmap_write(priv->regmap, HHI_MIPI_CNTL1, 0x001e); in phy_dsi_analog_enable()
88 regmap_write(priv->regmap, HHI_MIPI_CNTL2, in phy_dsi_analog_enable()
92 switch (priv->config.lanes) { in phy_dsi_analog_enable()
109 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL2, in phy_dsi_analog_enable()
113 priv->dsi_enabled = true; in phy_dsi_analog_enable()
118 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_dsi_analog_disable()
121 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, BIT(31), 0); in phy_dsi_analog_disable()
122 regmap_update_bits(priv->regmap, HHI_MIPI_CNTL0, in phy_dsi_analog_disable()
125 regmap_write(priv->regmap, HHI_MIPI_CNTL1, 0x6); in phy_dsi_analog_disable()
127 regmap_write(priv->regmap, HHI_MIPI_CNTL2, 0x00200000); in phy_dsi_analog_disable()
129 priv->dsi_enabled = false; in phy_dsi_analog_disable()
138 ret = phy_mipi_dphy_config_validate(&opts->mipi_dphy); in phy_axg_mipi_pcie_analog_configure()
142 memcpy(&priv->config, opts, sizeof(priv->config)); in phy_axg_mipi_pcie_analog_configure()
144 priv->dsi_configured = true; in phy_axg_mipi_pcie_analog_configure()
146 /* If PHY was already powered on, setup the DSI analog part */ in phy_axg_mipi_pcie_analog_configure()
147 if (priv->powered) { in phy_axg_mipi_pcie_analog_configure()
149 if (priv->dsi_enabled) in phy_axg_mipi_pcie_analog_configure()
166 if (priv->dsi_configured) in phy_axg_mipi_pcie_analog_power_on()
169 priv->powered = true; in phy_axg_mipi_pcie_analog_power_on()
180 if (priv->dsi_enabled) in phy_axg_mipi_pcie_analog_power_off()
183 priv->powered = false; in phy_axg_mipi_pcie_analog_power_off()
198 struct device *dev = &pdev->dev; in phy_axg_mipi_pcie_analog_probe()
200 struct device_node *np = dev->of_node; in phy_axg_mipi_pcie_analog_probe()
206 return -ENOMEM; in phy_axg_mipi_pcie_analog_probe()
209 map = syscon_node_to_regmap(of_get_parent(dev->of_node)); in phy_axg_mipi_pcie_analog_probe()
216 priv->regmap = map; in phy_axg_mipi_pcie_analog_probe()
218 priv->phy = devm_phy_create(dev, np, &phy_axg_mipi_pcie_analog_ops); in phy_axg_mipi_pcie_analog_probe()
219 if (IS_ERR(priv->phy)) { in phy_axg_mipi_pcie_analog_probe()
220 ret = PTR_ERR(priv->phy); in phy_axg_mipi_pcie_analog_probe()
221 if (ret != -EPROBE_DEFER) in phy_axg_mipi_pcie_analog_probe()
226 phy_set_drvdata(priv->phy, priv); in phy_axg_mipi_pcie_analog_probe()
236 .compatible = "amlogic,axg-mipi-pcie-analog-phy",
245 .name = "phy-axg-mipi-pcie-analog",