Lines Matching full:lpddr

34 static int lpddr_chip_setup(struct map_info *map, struct lpddr_private *lpddr);
38 struct lpddr_private *lpddr);
105 static int lpddr_pfow_present(struct map_info *map, struct lpddr_private *lpddr) in lpddr_pfow_present() argument
134 static int lpddr_chip_setup(struct map_info *map, struct lpddr_private *lpddr) in lpddr_chip_setup() argument
137 lpddr->qinfo = kzalloc(sizeof(struct qinfo_chip), GFP_KERNEL); in lpddr_chip_setup()
138 if (!lpddr->qinfo) { in lpddr_chip_setup()
139 printk(KERN_WARNING "%s: no memory for LPDDR qinfo structure\n", in lpddr_chip_setup()
145 lpddr->ManufactId = CMDVAL(map_read(map, map->pfow_base + PFOW_MANUFACTURER_ID)); in lpddr_chip_setup()
147 lpddr->DevId = CMDVAL(map_read(map, map->pfow_base + PFOW_DEVICE_ID)); in lpddr_chip_setup()
149 lpddr->qinfo->DevSizeShift = lpddr_info_query(map, "DevSizeShift"); in lpddr_chip_setup()
150 lpddr->qinfo->TotalBlocksNum = lpddr_info_query(map, "TotalBlocksNum"); in lpddr_chip_setup()
151 lpddr->qinfo->BufSizeShift = lpddr_info_query(map, "BufSizeShift"); in lpddr_chip_setup()
152 lpddr->qinfo->HWPartsNum = lpddr_info_query(map, "HWPartsNum"); in lpddr_chip_setup()
153 lpddr->qinfo->UniformBlockSizeShift = in lpddr_chip_setup()
155 lpddr->qinfo->SuspEraseSupp = lpddr_info_query(map, "SuspEraseSupp"); in lpddr_chip_setup()
156 lpddr->qinfo->SingleWordProgTime = in lpddr_chip_setup()
158 lpddr->qinfo->ProgBufferTime = lpddr_info_query(map, "ProgBufferTime"); in lpddr_chip_setup()
159 lpddr->qinfo->BlockEraseTime = lpddr_info_query(map, "BlockEraseTime"); in lpddr_chip_setup()
164 struct lpddr_private lpddr; in lpddr_probe_chip() local
175 memset(&lpddr, 0, sizeof(struct lpddr_private)); in lpddr_probe_chip()
176 if (!lpddr_pfow_present(map, &lpddr)) in lpddr_probe_chip()
179 if (!lpddr_chip_setup(map, &lpddr)) in lpddr_probe_chip()
183 lpddr.chipshift = lpddr.qinfo->DevSizeShift; in lpddr_probe_chip()
184 lpddr.numchips = 1; in lpddr_probe_chip()
186 numvirtchips = lpddr.numchips * lpddr.qinfo->HWPartsNum; in lpddr_probe_chip()
192 memcpy(retlpddr, &lpddr, sizeof(struct lpddr_private)); in lpddr_probe_chip()
204 struct lpddr_private *lpddr; in lpddr_probe() local
207 lpddr = lpddr_probe_chip(map); in lpddr_probe()
208 if (!lpddr) in lpddr_probe()
211 map->fldrv_priv = lpddr; in lpddr_probe()
223 kfree(lpddr->qinfo); in lpddr_probe()
224 kfree(lpddr); in lpddr_probe()