Lines Matching refs:devbus

80 struct devbus {  struct
86 static int get_timing_param_ps(struct devbus *devbus, in get_timing_param_ps() argument
96 dev_err(devbus->dev, "%pOF has no '%s' property\n", in get_timing_param_ps()
101 *ticks = (time_ps + devbus->tick_ps - 1) / devbus->tick_ps; in get_timing_param_ps()
103 dev_dbg(devbus->dev, "%s: %u ps -> 0x%x\n", in get_timing_param_ps()
108 static int devbus_get_timing_params(struct devbus *devbus, in devbus_get_timing_params() argument
117 dev_err(devbus->dev, in devbus_get_timing_params()
132 dev_err(devbus->dev, "invalid bus width %d\n", r->bus_width); in devbus_get_timing_params()
136 err = get_timing_param_ps(devbus, node, "devbus,badr-skew-ps", in devbus_get_timing_params()
141 err = get_timing_param_ps(devbus, node, "devbus,turn-off-ps", in devbus_get_timing_params()
146 err = get_timing_param_ps(devbus, node, "devbus,acc-first-ps", in devbus_get_timing_params()
151 err = get_timing_param_ps(devbus, node, "devbus,acc-next-ps", in devbus_get_timing_params()
156 if (of_device_is_compatible(devbus->dev->of_node, "marvell,mvebu-devbus")) { in devbus_get_timing_params()
157 err = get_timing_param_ps(devbus, node, "devbus,rd-setup-ps", in devbus_get_timing_params()
162 err = get_timing_param_ps(devbus, node, "devbus,rd-hold-ps", in devbus_get_timing_params()
170 dev_err(devbus->dev, in devbus_get_timing_params()
177 err = get_timing_param_ps(devbus, node, "devbus,ale-wr-ps", in devbus_get_timing_params()
182 err = get_timing_param_ps(devbus, node, "devbus,wr-low-ps", in devbus_get_timing_params()
187 err = get_timing_param_ps(devbus, node, "devbus,wr-high-ps", in devbus_get_timing_params()
195 static void devbus_orion_set_timing_params(struct devbus *devbus, in devbus_orion_set_timing_params() argument
225 writel(value, devbus->base); in devbus_orion_set_timing_params()
228 static void devbus_armada_set_timing_params(struct devbus *devbus, in devbus_armada_set_timing_params() argument
244 dev_dbg(devbus->dev, "read parameters register 0x%p = 0x%x\n", in devbus_armada_set_timing_params()
245 devbus->base + ARMADA_READ_PARAM_OFFSET, in devbus_armada_set_timing_params()
248 writel(value, devbus->base + ARMADA_READ_PARAM_OFFSET); in devbus_armada_set_timing_params()
256 dev_dbg(devbus->dev, "write parameters register: 0x%p = 0x%x\n", in devbus_armada_set_timing_params()
257 devbus->base + ARMADA_WRITE_PARAM_OFFSET, in devbus_armada_set_timing_params()
260 writel(value, devbus->base + ARMADA_WRITE_PARAM_OFFSET); in devbus_armada_set_timing_params()
269 struct devbus *devbus; in mvebu_devbus_probe() local
274 devbus = devm_kzalloc(&pdev->dev, sizeof(struct devbus), GFP_KERNEL); in mvebu_devbus_probe()
275 if (!devbus) in mvebu_devbus_probe()
278 devbus->dev = dev; in mvebu_devbus_probe()
279 devbus->base = devm_platform_ioremap_resource(pdev, 0); in mvebu_devbus_probe()
280 if (IS_ERR(devbus->base)) in mvebu_devbus_probe()
281 return PTR_ERR(devbus->base); in mvebu_devbus_probe()
293 devbus->tick_ps = 1000000000 / rate; in mvebu_devbus_probe()
295 dev_dbg(devbus->dev, "Setting timing parameter, tick is %lu ps\n", in mvebu_devbus_probe()
296 devbus->tick_ps); in mvebu_devbus_probe()
300 err = devbus_get_timing_params(devbus, node, &r, &w); in mvebu_devbus_probe()
306 devbus_orion_set_timing_params(devbus, node, &r, &w); in mvebu_devbus_probe()
308 devbus_armada_set_timing_params(devbus, node, &r, &w); in mvebu_devbus_probe()