Lines Matching +full:mux +full:- +full:add +full:- +full:data
1 /*-
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
144 {"brcm,mdio-mux-iproc", true},
156 bus_id = bus_dir ? child : (child - EXT_BUS_START_ADDR);
161 bus_write_4(sc->reg_base, MDIO_PARAM_OFFSET, param);
173 val = bus_read_4(sc->reg_base, MDIO_STAT_OFFSET);
178 } while (timeout--);
183 /* start_miim_ops- Program and start MDIO transaction over mdio bus.
202 bus_write_4(sc->reg_base, MDIO_CTRL_OFFSET, 0);
203 bus_read_4(sc->reg_base, MDIO_STAT_OFFSET);
208 param = bus_read_4(sc->reg_base, MDIO_PARAM_OFFSET);
214 bus_write_4(sc->reg_base, MDIO_PARAM_OFFSET, param);
216 bus_write_4(sc->reg_base, MDIO_ADDR_OFFSET, reg);
218 bus_write_4(sc->reg_base, MDIO_CTRL_OFFSET, op);
225 ret = bus_read_4(sc->reg_base, MDIO_READ_OFFSET) & MDIO_READ_DATA_MASK;
237 val = bus_read_4(sc->reg_base, MDIO_SCAN_CTRL_OFFSET);
239 bus_write_4(sc->reg_base, MDIO_SCAN_CTRL_OFFSET, val);
241 if (sc->clock_rate) {
245 divisor = sc->clock_rate / MDIO_OPERATING_FREQUENCY;
249 bus_write_4(sc->reg_base, MDIO_RATE_ADJ_EXT_OFFSET, val);
250 bus_write_4(sc->reg_base, MDIO_RATE_ADJ_INT_OFFSET, val);
264 device_printf(dev, "Failed to set BUS MUX\n");
279 device_printf(dev, "Failed to set BUS MUX\n");
292 if (!ofw_bus_search_compatible(dev, mdio_compat_data)->ocd_data)
295 device_set_desc(dev, "Broadcom MDIO MUX driver");
309 sc->dev = dev;
313 sc->reg_base = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
315 if (sc->reg_base == NULL) {
333 if (ofw_bus_gen_setup_devinfo(&di->di_dinfo, node) != 0) {
339 resource_list_init(&di->di_rl);
340 ofw_bus_reg_to_rl(dev, node, sc->sbus.acells, sc->sbus.scells,
341 &di->di_rl);
342 ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL);
344 /* Add newbus device for this FDT node */
347 printf("Failed to add child\n");
348 resource_list_free(&di->di_rl);
349 ofw_bus_gen_destroy_devinfo(&di->di_dinfo);
379 return (&di->di_dinfo);
389 if (sc->reg_base != NULL) {
391 sc->reg_base);