Lines Matching refs:devbus

92 struct devbus {  struct
98 static int get_timing_param_ps(struct devbus *devbus, in get_timing_param_ps() argument
108 dev_err(devbus->dev, "%s has no '%s' property\n", in get_timing_param_ps()
113 *ticks = (time_ps + devbus->tick_ps - 1) / devbus->tick_ps; in get_timing_param_ps()
115 dev_dbg(devbus->dev, "%s: %u ps -> 0x%x\n", in get_timing_param_ps()
120 static int devbus_get_timing_params(struct devbus *devbus, in devbus_get_timing_params() argument
129 dev_err(devbus->dev, in devbus_get_timing_params()
144 dev_err(devbus->dev, "invalid bus width %d\n", r->bus_width); in devbus_get_timing_params()
148 err = get_timing_param_ps(devbus, node, "devbus,badr-skew-ps", in devbus_get_timing_params()
153 err = get_timing_param_ps(devbus, node, "devbus,turn-off-ps", in devbus_get_timing_params()
158 err = get_timing_param_ps(devbus, node, "devbus,acc-first-ps", in devbus_get_timing_params()
163 err = get_timing_param_ps(devbus, node, "devbus,acc-next-ps", in devbus_get_timing_params()
168 if (of_device_is_compatible(devbus->dev->of_node, "marvell,mvebu-devbus")) { in devbus_get_timing_params()
169 err = get_timing_param_ps(devbus, node, "devbus,rd-setup-ps", in devbus_get_timing_params()
174 err = get_timing_param_ps(devbus, node, "devbus,rd-hold-ps", in devbus_get_timing_params()
182 dev_err(devbus->dev, in devbus_get_timing_params()
189 err = get_timing_param_ps(devbus, node, "devbus,ale-wr-ps", in devbus_get_timing_params()
194 err = get_timing_param_ps(devbus, node, "devbus,wr-low-ps", in devbus_get_timing_params()
199 err = get_timing_param_ps(devbus, node, "devbus,wr-high-ps", in devbus_get_timing_params()
207 static void devbus_orion_set_timing_params(struct devbus *devbus, in devbus_orion_set_timing_params() argument
237 writel(value, devbus->base); in devbus_orion_set_timing_params()
240 static void devbus_armada_set_timing_params(struct devbus *devbus, in devbus_armada_set_timing_params() argument
256 dev_dbg(devbus->dev, "read parameters register 0x%p = 0x%x\n", in devbus_armada_set_timing_params()
257 devbus->base + ARMADA_READ_PARAM_OFFSET, in devbus_armada_set_timing_params()
260 writel(value, devbus->base + ARMADA_READ_PARAM_OFFSET); in devbus_armada_set_timing_params()
268 dev_dbg(devbus->dev, "write parameters register: 0x%p = 0x%x\n", in devbus_armada_set_timing_params()
269 devbus->base + ARMADA_WRITE_PARAM_OFFSET, in devbus_armada_set_timing_params()
272 writel(value, devbus->base + ARMADA_WRITE_PARAM_OFFSET); in devbus_armada_set_timing_params()
281 struct devbus *devbus; in mvebu_devbus_probe() local
287 devbus = devm_kzalloc(&pdev->dev, sizeof(struct devbus), GFP_KERNEL); in mvebu_devbus_probe()
288 if (!devbus) in mvebu_devbus_probe()
291 devbus->dev = dev; in mvebu_devbus_probe()
293 devbus->base = devm_ioremap_resource(&pdev->dev, res); in mvebu_devbus_probe()
294 if (IS_ERR(devbus->base)) in mvebu_devbus_probe()
295 return PTR_ERR(devbus->base); in mvebu_devbus_probe()
308 devbus->tick_ps = 1000000000 / rate; in mvebu_devbus_probe()
310 dev_dbg(devbus->dev, "Setting timing parameter, tick is %lu ps\n", in mvebu_devbus_probe()
311 devbus->tick_ps); in mvebu_devbus_probe()
315 err = devbus_get_timing_params(devbus, node, &r, &w); in mvebu_devbus_probe()
321 devbus_orion_set_timing_params(devbus, node, &r, &w); in mvebu_devbus_probe()
323 devbus_armada_set_timing_params(devbus, node, &r, &w); in mvebu_devbus_probe()