Lines Matching refs:cpsw_mdio

57 struct cpsw_mdio {  struct
64 static int cpsw_mdio_wait_for_user_access(struct cpsw_mdio *mdio) in cpsw_mdio_wait_for_user_access() argument
74 struct cpsw_mdio *mdio = bus->priv; in cpsw_mdio_read()
100 struct cpsw_mdio *mdio = bus->priv; in cpsw_mdio_write()
121 struct cpsw_mdio *mdio = bus->priv; in cpsw_mdio_get_alive()
131 struct cpsw_mdio *cpsw_mdio; in cpsw_mdio_init() local
134 cpsw_mdio = calloc(1, sizeof(*cpsw_mdio)); in cpsw_mdio_init()
135 if (!cpsw_mdio) { in cpsw_mdio_init()
140 cpsw_mdio->bus = mdio_alloc(); in cpsw_mdio_init()
141 if (!cpsw_mdio->bus) { in cpsw_mdio_init()
143 free(cpsw_mdio); in cpsw_mdio_init()
147 cpsw_mdio->regs = (struct cpsw_mdio_regs *)mdio_base; in cpsw_mdio_init()
150 cpsw_mdio->div = CPSW_MDIO_DIV_DEF; in cpsw_mdio_init()
152 cpsw_mdio->div = (fck_freq / bus_freq) - 1; in cpsw_mdio_init()
153 cpsw_mdio->div &= CONTROL_DIV_MASK; in cpsw_mdio_init()
156 writel(cpsw_mdio->div | CONTROL_ENABLE | CONTROL_FAULT | in cpsw_mdio_init()
157 CONTROL_FAULT_ENABLE, &cpsw_mdio->regs->control); in cpsw_mdio_init()
158 wait_for_bit_le32(&cpsw_mdio->regs->control, in cpsw_mdio_init()
171 cpsw_mdio->bus->read = cpsw_mdio_read; in cpsw_mdio_init()
172 cpsw_mdio->bus->write = cpsw_mdio_write; in cpsw_mdio_init()
173 cpsw_mdio->bus->priv = cpsw_mdio; in cpsw_mdio_init()
174 snprintf(cpsw_mdio->bus->name, sizeof(cpsw_mdio->bus->name), name); in cpsw_mdio_init()
176 ret = mdio_register(cpsw_mdio->bus); in cpsw_mdio_init()
182 return cpsw_mdio->bus; in cpsw_mdio_init()
185 mdio_free(cpsw_mdio->bus); in cpsw_mdio_init()
186 free(cpsw_mdio); in cpsw_mdio_init()
192 struct cpsw_mdio *mdio = bus->priv; in cpsw_mdio_free()