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