Lines Matching refs:gpmc_t

1260 static int gpmc_calc_sync_read_timings(struct gpmc_timings *gpmc_t,  in gpmc_calc_sync_read_timings()  argument
1274 temp = max_t(u32, temp, gpmc_t->clk_activation + dev_t->t_avdh); in gpmc_calc_sync_read_timings()
1275 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_sync_read_timings()
1277 gpmc_t->adv_rd_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1282 temp = max_t(u32, temp, gpmc_t->clk_activation + dev_t->t_ach); in gpmc_calc_sync_read_timings()
1283 temp = max_t(u32, temp, gpmc_t->adv_rd_off + in gpmc_calc_sync_read_timings()
1286 gpmc_t->oe_on = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1293 temp = max_t(u32, dev_t->t_iaa, dev_t->cyc_iaa * gpmc_t->sync_clk); in gpmc_calc_sync_read_timings()
1294 temp += gpmc_t->clk_activation; in gpmc_calc_sync_read_timings()
1296 temp = max_t(u32, temp, gpmc_t->oe_on + in gpmc_calc_sync_read_timings()
1298 gpmc_t->access = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1300 gpmc_t->oe_off = gpmc_t->access + gpmc_ticks_to_ps(1); in gpmc_calc_sync_read_timings()
1301 gpmc_t->cs_rd_off = gpmc_t->oe_off; in gpmc_calc_sync_read_timings()
1305 temp = gpmc_round_ps_to_sync_clk(temp, gpmc_t->sync_clk) + in gpmc_calc_sync_read_timings()
1306 gpmc_t->access; in gpmc_calc_sync_read_timings()
1309 temp = max_t(u32, temp, gpmc_t->cs_rd_off + dev_t->t_ce_rdyz); in gpmc_calc_sync_read_timings()
1310 gpmc_t->rd_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1315 static int gpmc_calc_sync_write_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_sync_write_timings() argument
1325 gpmc_t->clk_activation + dev_t->t_avdh); in gpmc_calc_sync_write_timings()
1326 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_sync_write_timings()
1328 gpmc_t->adv_wr_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1332 gpmc_t->clk_activation + dev_t->t_rdyo); in gpmc_calc_sync_write_timings()
1338 gpmc_t->adv_wr_off + dev_t->t_aavdh); in gpmc_calc_sync_write_timings()
1339 temp = max_t(u32, temp, gpmc_t->adv_wr_off + in gpmc_calc_sync_write_timings()
1342 gpmc_t->wr_data_mux_bus = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1346 gpmc_t->we_on = gpmc_round_ps_to_ticks(dev_t->t_weasu); in gpmc_calc_sync_write_timings()
1348 gpmc_t->we_on = gpmc_t->wr_data_mux_bus; in gpmc_calc_sync_write_timings()
1352 gpmc_t->wr_access = gpmc_t->access; in gpmc_calc_sync_write_timings()
1355 temp = gpmc_t->we_on + dev_t->t_wpl; in gpmc_calc_sync_write_timings()
1357 gpmc_t->wr_access + gpmc_ticks_to_ps(1)); in gpmc_calc_sync_write_timings()
1359 gpmc_t->we_on + gpmc_ticks_to_ps(dev_t->cyc_wpl)); in gpmc_calc_sync_write_timings()
1360 gpmc_t->we_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1362 gpmc_t->cs_wr_off = gpmc_round_ps_to_ticks(gpmc_t->we_off + in gpmc_calc_sync_write_timings()
1366 temp = gpmc_round_ps_to_sync_clk(dev_t->t_cez_w, gpmc_t->sync_clk); in gpmc_calc_sync_write_timings()
1367 temp += gpmc_t->wr_access; in gpmc_calc_sync_write_timings()
1371 gpmc_t->cs_wr_off + dev_t->t_ce_rdyz); in gpmc_calc_sync_write_timings()
1372 gpmc_t->wr_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1377 static int gpmc_calc_async_read_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_async_read_timings() argument
1386 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_async_read_timings()
1387 gpmc_t->adv_rd_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1393 gpmc_t->adv_rd_off + dev_t->t_aavdh); in gpmc_calc_async_read_timings()
1394 gpmc_t->oe_on = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1398 gpmc_t->oe_on + dev_t->t_oe); in gpmc_calc_async_read_timings()
1400 gpmc_t->cs_on + dev_t->t_ce); in gpmc_calc_async_read_timings()
1402 gpmc_t->adv_on + dev_t->t_aa); in gpmc_calc_async_read_timings()
1403 gpmc_t->access = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1405 gpmc_t->oe_off = gpmc_t->access + gpmc_ticks_to_ps(1); in gpmc_calc_async_read_timings()
1406 gpmc_t->cs_rd_off = gpmc_t->oe_off; in gpmc_calc_async_read_timings()
1410 gpmc_t->cs_rd_off + dev_t->t_cez_r); in gpmc_calc_async_read_timings()
1411 temp = max_t(u32, temp, gpmc_t->oe_off + dev_t->t_oez); in gpmc_calc_async_read_timings()
1412 gpmc_t->rd_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1417 static int gpmc_calc_async_write_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_async_write_timings() argument
1426 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_async_write_timings()
1427 gpmc_t->adv_wr_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1432 temp = max_t(u32, temp, gpmc_t->adv_wr_off + dev_t->t_aavdh); in gpmc_calc_async_write_timings()
1433 temp = max_t(u32, temp, gpmc_t->adv_wr_off + in gpmc_calc_async_write_timings()
1436 gpmc_t->wr_data_mux_bus = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1440 gpmc_t->we_on = gpmc_round_ps_to_ticks(dev_t->t_weasu); in gpmc_calc_async_write_timings()
1442 gpmc_t->we_on = gpmc_t->wr_data_mux_bus; in gpmc_calc_async_write_timings()
1445 temp = gpmc_t->we_on + dev_t->t_wpl; in gpmc_calc_async_write_timings()
1446 gpmc_t->we_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1448 gpmc_t->cs_wr_off = gpmc_round_ps_to_ticks(gpmc_t->we_off + in gpmc_calc_async_write_timings()
1453 gpmc_t->cs_wr_off + dev_t->t_cez_w); in gpmc_calc_async_write_timings()
1454 gpmc_t->wr_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1459 static int gpmc_calc_sync_common_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_sync_common_timings() argument
1464 gpmc_t->sync_clk = gpmc_calc_divider(dev_t->clk) * in gpmc_calc_sync_common_timings()
1467 gpmc_t->page_burst_access = gpmc_round_ps_to_sync_clk( in gpmc_calc_sync_common_timings()
1469 gpmc_t->sync_clk); in gpmc_calc_sync_common_timings()
1472 gpmc_t->clk_activation = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_common_timings()
1474 if (gpmc_calc_divider(gpmc_t->sync_clk) != 1) in gpmc_calc_sync_common_timings()
1478 gpmc_t->bool_timings.cs_extra_delay = true; in gpmc_calc_sync_common_timings()
1480 gpmc_t->bool_timings.adv_extra_delay = true; in gpmc_calc_sync_common_timings()
1482 gpmc_t->bool_timings.oe_extra_delay = true; in gpmc_calc_sync_common_timings()
1484 gpmc_t->bool_timings.we_extra_delay = true; in gpmc_calc_sync_common_timings()
1489 static int gpmc_calc_common_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_common_timings() argument
1496 gpmc_t->cs_on = gpmc_round_ps_to_ticks(dev_t->t_ceasu); in gpmc_calc_common_timings()
1502 gpmc_t->cs_on + dev_t->t_ce_avd); in gpmc_calc_common_timings()
1503 gpmc_t->adv_on = gpmc_round_ps_to_ticks(temp); in gpmc_calc_common_timings()
1506 gpmc_calc_sync_common_timings(gpmc_t, dev_t); in gpmc_calc_common_timings()
1539 int gpmc_calc_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_timings() argument
1550 memset(gpmc_t, 0, sizeof(*gpmc_t)); in gpmc_calc_timings()
1552 gpmc_calc_common_timings(gpmc_t, dev_t, sync); in gpmc_calc_timings()
1555 gpmc_calc_sync_read_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1557 gpmc_calc_async_read_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1560 gpmc_calc_sync_write_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1562 gpmc_calc_async_write_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1565 gpmc_convert_ps_to_ns(gpmc_t); in gpmc_calc_timings()
1704 struct gpmc_timings *gpmc_t) in gpmc_read_timings_dt() argument
1708 if (!np || !gpmc_t) in gpmc_read_timings_dt()
1711 memset(gpmc_t, 0, sizeof(*gpmc_t)); in gpmc_read_timings_dt()
1714 of_property_read_u32(np, "gpmc,sync-clk-ps", &gpmc_t->sync_clk); in gpmc_read_timings_dt()
1717 of_property_read_u32(np, "gpmc,cs-on-ns", &gpmc_t->cs_on); in gpmc_read_timings_dt()
1718 of_property_read_u32(np, "gpmc,cs-rd-off-ns", &gpmc_t->cs_rd_off); in gpmc_read_timings_dt()
1719 of_property_read_u32(np, "gpmc,cs-wr-off-ns", &gpmc_t->cs_wr_off); in gpmc_read_timings_dt()
1722 of_property_read_u32(np, "gpmc,adv-on-ns", &gpmc_t->adv_on); in gpmc_read_timings_dt()
1723 of_property_read_u32(np, "gpmc,adv-rd-off-ns", &gpmc_t->adv_rd_off); in gpmc_read_timings_dt()
1724 of_property_read_u32(np, "gpmc,adv-wr-off-ns", &gpmc_t->adv_wr_off); in gpmc_read_timings_dt()
1727 of_property_read_u32(np, "gpmc,we-on-ns", &gpmc_t->we_on); in gpmc_read_timings_dt()
1728 of_property_read_u32(np, "gpmc,we-off-ns", &gpmc_t->we_off); in gpmc_read_timings_dt()
1731 of_property_read_u32(np, "gpmc,oe-on-ns", &gpmc_t->oe_on); in gpmc_read_timings_dt()
1732 of_property_read_u32(np, "gpmc,oe-off-ns", &gpmc_t->oe_off); in gpmc_read_timings_dt()
1736 &gpmc_t->page_burst_access); in gpmc_read_timings_dt()
1737 of_property_read_u32(np, "gpmc,access-ns", &gpmc_t->access); in gpmc_read_timings_dt()
1738 of_property_read_u32(np, "gpmc,rd-cycle-ns", &gpmc_t->rd_cycle); in gpmc_read_timings_dt()
1739 of_property_read_u32(np, "gpmc,wr-cycle-ns", &gpmc_t->wr_cycle); in gpmc_read_timings_dt()
1741 &gpmc_t->bus_turnaround); in gpmc_read_timings_dt()
1743 &gpmc_t->cycle2cycle_delay); in gpmc_read_timings_dt()
1745 &gpmc_t->wait_monitoring); in gpmc_read_timings_dt()
1747 &gpmc_t->clk_activation); in gpmc_read_timings_dt()
1750 of_property_read_u32(np, "gpmc,wr-access-ns", &gpmc_t->wr_access); in gpmc_read_timings_dt()
1752 &gpmc_t->wr_data_mux_bus); in gpmc_read_timings_dt()
1755 p = &gpmc_t->bool_timings; in gpmc_read_timings_dt()
1783 struct gpmc_timings gpmc_t; in gpmc_probe_nand_child() local
1855 gpmc_read_timings_dt(child, &gpmc_t); in gpmc_probe_nand_child()
1856 gpmc_nand_init(gpmc_nand_data, &gpmc_t); in gpmc_probe_nand_child()
1917 struct gpmc_timings gpmc_t; in gpmc_probe_generic_child() local
1953 gpmc_read_timings_dt(child, &gpmc_t); in gpmc_probe_generic_child()
1960 if (!gpmc_t.cs_rd_off) { in gpmc_probe_generic_child()
1995 ret = gpmc_cs_set_timings(cs, &gpmc_t, &gpmc_s); in gpmc_probe_generic_child()