Lines Matching +full:phy +full:- +full:mode
2 * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
3 * Written by Jean-Jacques Hiblot <jjhiblot@ti.com>
5 * SPDX-License-Identifier: GPL-2.0+
10 #include <generic-phy.h>
16 return (struct phy_ops *)dev->driver->ops; in phy_dev_ops()
19 static int generic_phy_xlate_offs_flags(struct phy *phy, in generic_phy_xlate_offs_flags() argument
22 debug("%s(phy=%p)\n", __func__, phy); in generic_phy_xlate_offs_flags()
24 if (args->args_count > 1) { in generic_phy_xlate_offs_flags()
25 debug("Invaild args_count: %d\n", args->args_count); in generic_phy_xlate_offs_flags()
26 return -EINVAL; in generic_phy_xlate_offs_flags()
29 if (args->args_count) in generic_phy_xlate_offs_flags()
30 phy->id = args->args[0]; in generic_phy_xlate_offs_flags()
32 phy->id = 0; in generic_phy_xlate_offs_flags()
38 struct phy *phy) in generic_phy_get_by_index() argument
45 debug("%s(dev=%p, index=%d, phy=%p)\n", __func__, dev, index, phy); in generic_phy_get_by_index()
47 assert(phy); in generic_phy_get_by_index()
48 phy->dev = NULL; in generic_phy_get_by_index()
49 ret = dev_read_phandle_with_args(dev, "phys", "#phy-cells", 0, index, in generic_phy_get_by_index()
64 phy->dev = phydev; in generic_phy_get_by_index()
68 if (ops->of_xlate) in generic_phy_get_by_index()
69 ret = ops->of_xlate(phy, &args); in generic_phy_get_by_index()
71 ret = generic_phy_xlate_offs_flags(phy, &args); in generic_phy_get_by_index()
84 struct phy *phy) in generic_phy_get_by_name() argument
88 debug("%s(dev=%p, name=%s, phy=%p)\n", __func__, dev, phy_name, phy); in generic_phy_get_by_name()
90 index = dev_read_stringlist_search(dev, "phy-names", phy_name); in generic_phy_get_by_name()
96 return generic_phy_get_by_index(dev, index, phy); in generic_phy_get_by_name()
99 int generic_phy_init(struct phy *phy) in generic_phy_init() argument
103 if (!generic_phy_valid(phy)) in generic_phy_init()
105 ops = phy_dev_ops(phy->dev); in generic_phy_init()
107 return ops->init ? ops->init(phy) : 0; in generic_phy_init()
110 int generic_phy_reset(struct phy *phy) in generic_phy_reset() argument
114 if (!generic_phy_valid(phy)) in generic_phy_reset()
116 ops = phy_dev_ops(phy->dev); in generic_phy_reset()
118 return ops->reset ? ops->reset(phy) : 0; in generic_phy_reset()
121 int generic_phy_exit(struct phy *phy) in generic_phy_exit() argument
125 if (!generic_phy_valid(phy)) in generic_phy_exit()
127 ops = phy_dev_ops(phy->dev); in generic_phy_exit()
129 return ops->exit ? ops->exit(phy) : 0; in generic_phy_exit()
132 int generic_phy_power_on(struct phy *phy) in generic_phy_power_on() argument
136 if (!generic_phy_valid(phy)) in generic_phy_power_on()
138 ops = phy_dev_ops(phy->dev); in generic_phy_power_on()
140 return ops->power_on ? ops->power_on(phy) : 0; in generic_phy_power_on()
143 int generic_phy_power_off(struct phy *phy) in generic_phy_power_off() argument
147 if (!generic_phy_valid(phy)) in generic_phy_power_off()
149 ops = phy_dev_ops(phy->dev); in generic_phy_power_off()
151 return ops->power_off ? ops->power_off(phy) : 0; in generic_phy_power_off()
154 int generic_phy_configure(struct phy *phy, union phy_configure_opts *opts) in generic_phy_configure() argument
158 if (!generic_phy_valid(phy)) in generic_phy_configure()
160 ops = phy_dev_ops(phy->dev); in generic_phy_configure()
162 return ops->configure ? ops->configure(phy, opts) : 0; in generic_phy_configure()
165 int generic_phy_validate(struct phy *phy, enum phy_mode mode, int submode, in generic_phy_validate() argument
170 if (!generic_phy_valid(phy)) in generic_phy_validate()
172 ops = phy_dev_ops(phy->dev); in generic_phy_validate()
174 return ops->validate ? ops->validate(phy, mode, submode, opts) : 0; in generic_phy_validate()
177 int generic_phy_set_mode_ext(struct phy *phy, enum phy_mode mode, int submode) in generic_phy_set_mode_ext() argument
182 if (!generic_phy_valid(phy)) in generic_phy_set_mode_ext()
184 ops = phy_dev_ops(phy->dev); in generic_phy_set_mode_ext()
186 if (!ops->set_mode) in generic_phy_set_mode_ext()
189 ret = ops->set_mode(phy, mode, submode); in generic_phy_set_mode_ext()
191 phy->attrs.mode = mode; in generic_phy_set_mode_ext()
196 UCLASS_DRIVER(phy) = {
198 .name = "phy",