Lines Matching +full:podl +full:- +full:pse +full:- +full:regulator

1 // SPDX-License-Identifier: GPL-2.0-only
3 // Driver for the regulator based Ethernet Power Sourcing Equipment, without
12 #include <linux/pse-pd/pse.h>
13 #include <linux/regulator/consumer.h>
17 struct regulator *ps; /*power source */
32 ret = regulator_enable(priv->ps); in pse_reg_pi_enable()
36 priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED; in pse_reg_pi_enable()
46 ret = regulator_disable(priv->ps); in pse_reg_pi_disable()
50 priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED; in pse_reg_pi_disable()
60 admin_state->podl_admin_state = priv->admin_state; in pse_reg_pi_get_admin_state()
72 ret = regulator_is_enabled(priv->ps); in pse_reg_pi_get_pw_status()
77 pw_status->podl_pw_status = in pse_reg_pi_get_pw_status()
80 pw_status->podl_pw_status = in pse_reg_pi_get_pw_status()
96 struct device *dev = &pdev->dev; in pse_reg_probe()
100 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in pse_reg_probe()
102 return -ENOMEM; in pse_reg_probe()
104 if (!pdev->dev.of_node) in pse_reg_probe()
105 return -ENOENT; in pse_reg_probe()
107 priv->ps = devm_regulator_get_exclusive(dev, "pse"); in pse_reg_probe()
108 if (IS_ERR(priv->ps)) in pse_reg_probe()
109 return dev_err_probe(dev, PTR_ERR(priv->ps), in pse_reg_probe()
110 "failed to get PSE regulator.\n"); in pse_reg_probe()
114 ret = regulator_is_enabled(priv->ps); in pse_reg_probe()
119 priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED; in pse_reg_probe()
121 priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED; in pse_reg_probe()
123 priv->pcdev.owner = THIS_MODULE; in pse_reg_probe()
124 priv->pcdev.ops = &pse_reg_ops; in pse_reg_probe()
125 priv->pcdev.dev = dev; in pse_reg_probe()
126 priv->pcdev.types = ETHTOOL_PSE_PODL; in pse_reg_probe()
127 ret = devm_pse_controller_register(dev, &priv->pcdev); in pse_reg_probe()
129 dev_err(dev, "failed to register PSE controller (%pe)\n", in pse_reg_probe()
138 { .compatible = "podl-pse-regulator", },
146 .name = "PSE regulator",
153 MODULE_DESCRIPTION("regulator based Ethernet Power Sourcing Equipment");
155 MODULE_ALIAS("platform:pse-regulator");