Lines Matching +full:init +full:- +full:mdio +full:- +full:phy
4 * SPDX-License-Identifier: Apache-2.0
10 #include <zephyr/init.h>
13 #include <zephyr/drivers/mdio.h>
34 gpio_pin_set_dt(&dev_cfg->mdc_gpio, 1); in mdio_gpio_clock_the_bit()
36 gpio_pin_set_dt(&dev_cfg->mdc_gpio, 0); in mdio_gpio_clock_the_bit()
41 gpio_pin_configure_dt(&dev_cfg->mdio_gpio, dir ? GPIO_OUTPUT_ACTIVE : GPIO_INPUT); in mdio_gpio_dir()
54 if (gpio_pin_get_dt(&dev_cfg->mdio_gpio) == 1) { in mdio_gpio_read()
68 v_data <<= 32 - v_len; in mdio_gpio_write()
69 for (; v_len > 0; v_len--) { in mdio_gpio_write()
70 gpio_pin_set_dt(&dev_cfg->mdio_gpio, (v_data & MDIO_GPIO_MSB) ? 1 : 0); in mdio_gpio_write()
79 const struct mdio_gpio_config *const dev_cfg = dev->config; in mdio_gpio_transfer()
80 struct mdio_gpio_data *const dev_data = dev->data; in mdio_gpio_transfer()
82 k_sem_take(&dev_data->sem, K_FOREVER); in mdio_gpio_transfer()
92 /* PA5: 5 bits PHY address */ in mdio_gpio_transfer()
98 /* TA: 2 bits turn-around */ in mdio_gpio_transfer()
102 /* Release the MDIO line */ in mdio_gpio_transfer()
107 /* DIR: input. Tristate MDIO line */ in mdio_gpio_transfer()
110 k_sem_give(&dev_data->sem); in mdio_gpio_transfer()
129 const struct mdio_gpio_config *const dev_cfg = dev->config; in mdio_gpio_initialize()
130 struct mdio_gpio_data *const dev_data = dev->data; in mdio_gpio_initialize()
133 k_sem_init(&dev_data->sem, 1, 1); in mdio_gpio_initialize()
135 if (!device_is_ready(dev_cfg->mdc_gpio.port)) { in mdio_gpio_initialize()
137 return -ENODEV; in mdio_gpio_initialize()
140 if (!device_is_ready(dev_cfg->mdio_gpio.port)) { in mdio_gpio_initialize()
141 LOG_ERR("GPIO port for MDIO pin is not ready"); in mdio_gpio_initialize()
142 return -ENODEV; in mdio_gpio_initialize()
145 rc = gpio_pin_configure_dt(&dev_cfg->mdc_gpio, GPIO_OUTPUT_INACTIVE); in mdio_gpio_initialize()
151 rc = gpio_pin_configure_dt(&dev_cfg->mdio_gpio, GPIO_INPUT); in mdio_gpio_initialize()
153 LOG_ERR("Couldn't configure MDIO pin; (%d)", rc); in mdio_gpio_initialize()
160 static DEVICE_API(mdio, mdio_gpio_driver_api) = {