Lines Matching defs:phy

33 	struct s3fwrn5_i2c_phy *phy = phy_id;
35 mutex_lock(&phy->common.mutex);
37 if (s3fwrn5_phy_power_ctrl(&phy->common, mode) == false)
40 phy->irq_skip = true;
43 mutex_unlock(&phy->common.mutex);
48 struct s3fwrn5_i2c_phy *phy = phy_id;
51 mutex_lock(&phy->common.mutex);
53 phy->irq_skip = false;
55 ret = i2c_master_send(phy->i2c_dev, skb->data, skb->len);
59 ret = i2c_master_send(phy->i2c_dev, skb->data, skb->len);
62 mutex_unlock(&phy->common.mutex);
80 static int s3fwrn5_i2c_read(struct s3fwrn5_i2c_phy *phy)
88 hdr_size = (phy->common.mode == S3FWRN5_MODE_NCI) ?
90 ret = i2c_master_recv(phy->i2c_dev, hdr, hdr_size);
97 data_len = (phy->common.mode == S3FWRN5_MODE_NCI) ?
110 ret = i2c_master_recv(phy->i2c_dev, skb_put(skb, data_len), data_len);
117 return s3fwrn5_recv_frame(phy->common.ndev, skb, phy->common.mode);
122 struct s3fwrn5_i2c_phy *phy = phy_id;
124 if (!phy || !phy->common.ndev) {
129 mutex_lock(&phy->common.mutex);
131 if (phy->irq_skip)
134 switch (phy->common.mode) {
137 s3fwrn5_i2c_read(phy);
144 mutex_unlock(&phy->common.mutex);
151 struct s3fwrn5_i2c_phy *phy = i2c_get_clientdata(client);
157 phy->common.gpio_en = of_get_named_gpio(np, "en-gpios", 0);
158 if (!gpio_is_valid(phy->common.gpio_en)) {
160 phy->common.gpio_en = of_get_named_gpio(np,
163 if (!gpio_is_valid(phy->common.gpio_en))
167 phy->common.gpio_fw_wake = of_get_named_gpio(np, "wake-gpios", 0);
168 if (!gpio_is_valid(phy->common.gpio_fw_wake)) {
170 phy->common.gpio_fw_wake = of_get_named_gpio(np,
173 if (!gpio_is_valid(phy->common.gpio_fw_wake))
182 struct s3fwrn5_i2c_phy *phy;
185 phy = devm_kzalloc(&client->dev, sizeof(*phy), GFP_KERNEL);
186 if (!phy)
189 mutex_init(&phy->common.mutex);
190 phy->common.mode = S3FWRN5_MODE_COLD;
191 phy->irq_skip = true;
193 phy->i2c_dev = client;
194 i2c_set_clientdata(client, phy);
200 ret = devm_gpio_request_one(&phy->i2c_dev->dev, phy->common.gpio_en,
205 ret = devm_gpio_request_one(&phy->i2c_dev->dev,
206 phy->common.gpio_fw_wake,
217 phy->clk = devm_clk_get_optional_enabled(&client->dev, NULL);
218 if (IS_ERR(phy->clk))
219 return dev_err_probe(&client->dev, PTR_ERR(phy->clk),
222 ret = s3fwrn5_probe(&phy->common.ndev, phy, &phy->i2c_dev->dev,
227 ret = devm_request_threaded_irq(&client->dev, phy->i2c_dev->irq, NULL,
229 S3FWRN5_I2C_DRIVER_NAME, phy);
236 s3fwrn5_remove(phy->common.ndev);
242 struct s3fwrn5_i2c_phy *phy = i2c_get_clientdata(client);
244 s3fwrn5_remove(phy->common.ndev);