Lines Matching refs:gpmc_t

1212 	struct gpmc_timings gpmc_t;  in gpmc_omap_onenand_set_timings()  local
1224 gpmc_omap_onenand_calc_sync_timings(&gpmc_t, &gpmc_s, freq, latency); in gpmc_omap_onenand_set_timings()
1230 return gpmc_cs_set_timings(cs, &gpmc_t, &gpmc_s); in gpmc_omap_onenand_set_timings()
1493 static int gpmc_calc_sync_read_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_sync_read_timings() argument
1507 temp = max_t(u32, temp, gpmc_t->clk_activation + dev_t->t_avdh); in gpmc_calc_sync_read_timings()
1508 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_sync_read_timings()
1510 gpmc_t->adv_rd_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1515 temp = max_t(u32, temp, gpmc_t->clk_activation + dev_t->t_ach); in gpmc_calc_sync_read_timings()
1516 temp = max_t(u32, temp, gpmc_t->adv_rd_off + in gpmc_calc_sync_read_timings()
1519 gpmc_t->oe_on = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1526 temp = max_t(u32, dev_t->t_iaa, dev_t->cyc_iaa * gpmc_t->sync_clk); in gpmc_calc_sync_read_timings()
1527 temp += gpmc_t->clk_activation; in gpmc_calc_sync_read_timings()
1529 temp = max_t(u32, temp, gpmc_t->oe_on + in gpmc_calc_sync_read_timings()
1531 gpmc_t->access = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1533 gpmc_t->oe_off = gpmc_t->access + gpmc_ticks_to_ps(1); in gpmc_calc_sync_read_timings()
1534 gpmc_t->cs_rd_off = gpmc_t->oe_off; in gpmc_calc_sync_read_timings()
1538 temp = gpmc_round_ps_to_sync_clk(temp, gpmc_t->sync_clk) + in gpmc_calc_sync_read_timings()
1539 gpmc_t->access; in gpmc_calc_sync_read_timings()
1542 temp = max_t(u32, temp, gpmc_t->cs_rd_off + dev_t->t_ce_rdyz); in gpmc_calc_sync_read_timings()
1543 gpmc_t->rd_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_read_timings()
1548 static int gpmc_calc_sync_write_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_sync_write_timings() argument
1558 gpmc_t->clk_activation + dev_t->t_avdh); in gpmc_calc_sync_write_timings()
1559 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_sync_write_timings()
1561 gpmc_t->adv_wr_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1565 gpmc_t->clk_activation + dev_t->t_rdyo); in gpmc_calc_sync_write_timings()
1571 gpmc_t->adv_wr_off + dev_t->t_aavdh); in gpmc_calc_sync_write_timings()
1572 temp = max_t(u32, temp, gpmc_t->adv_wr_off + in gpmc_calc_sync_write_timings()
1575 gpmc_t->wr_data_mux_bus = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1579 gpmc_t->we_on = gpmc_round_ps_to_ticks(dev_t->t_weasu); in gpmc_calc_sync_write_timings()
1581 gpmc_t->we_on = gpmc_t->wr_data_mux_bus; in gpmc_calc_sync_write_timings()
1585 gpmc_t->wr_access = gpmc_t->access; in gpmc_calc_sync_write_timings()
1588 temp = gpmc_t->we_on + dev_t->t_wpl; in gpmc_calc_sync_write_timings()
1590 gpmc_t->wr_access + gpmc_ticks_to_ps(1)); in gpmc_calc_sync_write_timings()
1592 gpmc_t->we_on + gpmc_ticks_to_ps(dev_t->cyc_wpl)); in gpmc_calc_sync_write_timings()
1593 gpmc_t->we_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1595 gpmc_t->cs_wr_off = gpmc_round_ps_to_ticks(gpmc_t->we_off + in gpmc_calc_sync_write_timings()
1599 temp = gpmc_round_ps_to_sync_clk(dev_t->t_cez_w, gpmc_t->sync_clk); in gpmc_calc_sync_write_timings()
1600 temp += gpmc_t->wr_access; in gpmc_calc_sync_write_timings()
1604 gpmc_t->cs_wr_off + dev_t->t_ce_rdyz); in gpmc_calc_sync_write_timings()
1605 gpmc_t->wr_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_write_timings()
1610 static int gpmc_calc_async_read_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_async_read_timings() argument
1619 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_async_read_timings()
1620 gpmc_t->adv_rd_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1625 temp = max_t(u32, temp, gpmc_t->adv_rd_off + dev_t->t_aavdh); in gpmc_calc_async_read_timings()
1626 gpmc_t->oe_on = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1630 gpmc_t->oe_on + dev_t->t_oe); in gpmc_calc_async_read_timings()
1631 temp = max_t(u32, temp, gpmc_t->cs_on + dev_t->t_ce); in gpmc_calc_async_read_timings()
1632 temp = max_t(u32, temp, gpmc_t->adv_on + dev_t->t_aa); in gpmc_calc_async_read_timings()
1633 gpmc_t->access = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1635 gpmc_t->oe_off = gpmc_t->access + gpmc_ticks_to_ps(1); in gpmc_calc_async_read_timings()
1636 gpmc_t->cs_rd_off = gpmc_t->oe_off; in gpmc_calc_async_read_timings()
1640 gpmc_t->cs_rd_off + dev_t->t_cez_r); in gpmc_calc_async_read_timings()
1641 temp = max_t(u32, temp, gpmc_t->oe_off + dev_t->t_oez); in gpmc_calc_async_read_timings()
1642 gpmc_t->rd_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_read_timings()
1647 static int gpmc_calc_async_write_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_async_write_timings() argument
1656 temp = max_t(u32, gpmc_t->adv_on + gpmc_ticks_to_ps(1), temp); in gpmc_calc_async_write_timings()
1657 gpmc_t->adv_wr_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1662 temp = max_t(u32, temp, gpmc_t->adv_wr_off + dev_t->t_aavdh); in gpmc_calc_async_write_timings()
1663 temp = max_t(u32, temp, gpmc_t->adv_wr_off + in gpmc_calc_async_write_timings()
1666 gpmc_t->wr_data_mux_bus = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1670 gpmc_t->we_on = gpmc_round_ps_to_ticks(dev_t->t_weasu); in gpmc_calc_async_write_timings()
1672 gpmc_t->we_on = gpmc_t->wr_data_mux_bus; in gpmc_calc_async_write_timings()
1675 temp = gpmc_t->we_on + dev_t->t_wpl; in gpmc_calc_async_write_timings()
1676 gpmc_t->we_off = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1678 gpmc_t->cs_wr_off = gpmc_round_ps_to_ticks(gpmc_t->we_off + in gpmc_calc_async_write_timings()
1683 gpmc_t->cs_wr_off + dev_t->t_cez_w); in gpmc_calc_async_write_timings()
1684 gpmc_t->wr_cycle = gpmc_round_ps_to_ticks(temp); in gpmc_calc_async_write_timings()
1689 static int gpmc_calc_sync_common_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_sync_common_timings() argument
1694 gpmc_t->sync_clk = gpmc_calc_divider(dev_t->clk) * in gpmc_calc_sync_common_timings()
1697 gpmc_t->page_burst_access = gpmc_round_ps_to_sync_clk( in gpmc_calc_sync_common_timings()
1699 gpmc_t->sync_clk); in gpmc_calc_sync_common_timings()
1702 gpmc_t->clk_activation = gpmc_round_ps_to_ticks(temp); in gpmc_calc_sync_common_timings()
1704 if (gpmc_calc_divider(gpmc_t->sync_clk) != 1) in gpmc_calc_sync_common_timings()
1708 gpmc_t->bool_timings.cs_extra_delay = true; in gpmc_calc_sync_common_timings()
1710 gpmc_t->bool_timings.adv_extra_delay = true; in gpmc_calc_sync_common_timings()
1712 gpmc_t->bool_timings.oe_extra_delay = true; in gpmc_calc_sync_common_timings()
1714 gpmc_t->bool_timings.we_extra_delay = true; in gpmc_calc_sync_common_timings()
1719 static int gpmc_calc_common_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_common_timings() argument
1726 gpmc_t->cs_on = gpmc_round_ps_to_ticks(dev_t->t_ceasu); in gpmc_calc_common_timings()
1732 gpmc_t->cs_on + dev_t->t_ce_avd); in gpmc_calc_common_timings()
1733 gpmc_t->adv_on = gpmc_round_ps_to_ticks(temp); in gpmc_calc_common_timings()
1736 gpmc_calc_sync_common_timings(gpmc_t, dev_t); in gpmc_calc_common_timings()
1770 int gpmc_calc_timings(struct gpmc_timings *gpmc_t, in gpmc_calc_timings() argument
1781 memset(gpmc_t, 0, sizeof(*gpmc_t)); in gpmc_calc_timings()
1783 gpmc_calc_common_timings(gpmc_t, dev_t, sync); in gpmc_calc_timings()
1786 gpmc_calc_sync_read_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1788 gpmc_calc_async_read_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1791 gpmc_calc_sync_write_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1793 gpmc_calc_async_write_timings(gpmc_t, dev_t, mux); in gpmc_calc_timings()
1796 gpmc_convert_ps_to_ns(gpmc_t); in gpmc_calc_timings()
1991 struct gpmc_timings *gpmc_t) in gpmc_read_timings_dt() argument
1995 if (!np || !gpmc_t) in gpmc_read_timings_dt()
1998 memset(gpmc_t, 0, sizeof(*gpmc_t)); in gpmc_read_timings_dt()
2001 of_property_read_u32(np, "gpmc,sync-clk-ps", &gpmc_t->sync_clk); in gpmc_read_timings_dt()
2004 of_property_read_u32(np, "gpmc,cs-on-ns", &gpmc_t->cs_on); in gpmc_read_timings_dt()
2005 of_property_read_u32(np, "gpmc,cs-rd-off-ns", &gpmc_t->cs_rd_off); in gpmc_read_timings_dt()
2006 of_property_read_u32(np, "gpmc,cs-wr-off-ns", &gpmc_t->cs_wr_off); in gpmc_read_timings_dt()
2009 of_property_read_u32(np, "gpmc,adv-on-ns", &gpmc_t->adv_on); in gpmc_read_timings_dt()
2010 of_property_read_u32(np, "gpmc,adv-rd-off-ns", &gpmc_t->adv_rd_off); in gpmc_read_timings_dt()
2011 of_property_read_u32(np, "gpmc,adv-wr-off-ns", &gpmc_t->adv_wr_off); in gpmc_read_timings_dt()
2013 &gpmc_t->adv_aad_mux_on); in gpmc_read_timings_dt()
2015 &gpmc_t->adv_aad_mux_rd_off); in gpmc_read_timings_dt()
2017 &gpmc_t->adv_aad_mux_wr_off); in gpmc_read_timings_dt()
2020 of_property_read_u32(np, "gpmc,we-on-ns", &gpmc_t->we_on); in gpmc_read_timings_dt()
2021 of_property_read_u32(np, "gpmc,we-off-ns", &gpmc_t->we_off); in gpmc_read_timings_dt()
2024 of_property_read_u32(np, "gpmc,oe-on-ns", &gpmc_t->oe_on); in gpmc_read_timings_dt()
2025 of_property_read_u32(np, "gpmc,oe-off-ns", &gpmc_t->oe_off); in gpmc_read_timings_dt()
2027 &gpmc_t->oe_aad_mux_on); in gpmc_read_timings_dt()
2029 &gpmc_t->oe_aad_mux_off); in gpmc_read_timings_dt()
2033 &gpmc_t->page_burst_access); in gpmc_read_timings_dt()
2034 of_property_read_u32(np, "gpmc,access-ns", &gpmc_t->access); in gpmc_read_timings_dt()
2035 of_property_read_u32(np, "gpmc,rd-cycle-ns", &gpmc_t->rd_cycle); in gpmc_read_timings_dt()
2036 of_property_read_u32(np, "gpmc,wr-cycle-ns", &gpmc_t->wr_cycle); in gpmc_read_timings_dt()
2038 &gpmc_t->bus_turnaround); in gpmc_read_timings_dt()
2040 &gpmc_t->cycle2cycle_delay); in gpmc_read_timings_dt()
2042 &gpmc_t->wait_monitoring); in gpmc_read_timings_dt()
2044 &gpmc_t->clk_activation); in gpmc_read_timings_dt()
2047 of_property_read_u32(np, "gpmc,wr-access-ns", &gpmc_t->wr_access); in gpmc_read_timings_dt()
2049 &gpmc_t->wr_data_mux_bus); in gpmc_read_timings_dt()
2052 p = &gpmc_t->bool_timings; in gpmc_read_timings_dt()
2078 struct gpmc_timings gpmc_t; in gpmc_probe_generic_child() local
2116 gpmc_read_timings_dt(child, &gpmc_t); in gpmc_probe_generic_child()
2123 if (!gpmc_t.cs_rd_off) { in gpmc_probe_generic_child()
2231 ret = gpmc_cs_set_timings(cs, &gpmc_t, &gpmc_s); in gpmc_probe_generic_child()