• Huang Shijie's avatar
    mtd: gpmi: add gpmi_devdata{} to simplify the code · 6189cccb
    Huang Shijie authored
    More and more chips use the GPMI controller, but these chips may use different
    version of the IPs for GPMI and BCH. Different IPs have
     different features, such as the BCH's maximum ECC strength:
    
         imx23/imx28 -- the BCH's maximum ECC strength is 20
         imx6q       -- the BCH's maximum ECC strength is 40
         imx6sx      -- the BCH's maximum ECC strength is 62
    
    This patch does the following things:
    
      [1] add a new data structure, gpmi_devdata{}, to store the information for
          each IP. Besides the IP version, we store the following information:
             <1> BCH's maximum ECC strength.
             <2> the maximum chain delay in ns used by the EDO mode.
    
          but we may add more information in future.
    
      [2] add the gpmi_devdata_imx{23|28|6q} to replace the gpmi_ids.
    
      [3] simplify the code by using the ECC strength from gpmi_devdata, such as
          gpmi_check_ecc() and legacy_set_geometry();
    
      [4] use the maximum chain delay to initialize the EDO mode,
          see gpmi_compute_edo_timing().
    
      [5] rewrite the macros, such GPMI_IS_MX{23|28|6Q}.
    Signed-off-by: default avatarHuang Shijie <b32955@freescale.com>
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    6189cccb
gpmi-lib.c 40.9 KB