Lines Matching +full:7 +full:- +full:bit

1 // SPDX-License-Identifier: GPL-2.0 OR MIT
10 #include <linux/dma-mapping.h>
16 #include <linux/nvmem-consumer.h>
23 #include "ufshcd-pltfrm.h"
47 ret = readl_poll_timeout_atomic(hba->mmio_base + reg, in ufs_renesas_poll()
51 dev_err(hba->dev, "%s: poll failed %d (%08x, %08x, %08x)\n", in ufs_renesas_poll()
75 ufs_renesas_write_d0_d4(hba, 0x00000800, (data_800 << 16) | BIT(8) | addr); in ufs_renesas_write_800_80c_poll()
77 ufs_renesas_poll(hba, 0xd4, BIT(8), BIT(8)); in ufs_renesas_write_800_80c_poll()
83 ufs_renesas_write_d0_d4(hba, 0x00000804, (data_804 << 16) | BIT(8) | addr); in ufs_renesas_write_804_80c_poll()
85 ufs_renesas_poll(hba, 0xd4, BIT(8), BIT(8)); in ufs_renesas_write_804_80c_poll()
142 ufs_renesas_poll(hba, 0xd4, BIT(27) | BIT(26) | BIT(24), BIT(27) | BIT(26) | BIT(24)); in ufs_renesas_reset_indirect_update()
191 ufs_renesas_poll(hba, 0xd4, BIT(8), BIT(8)); in ufs_renesas_init_step4_to_6()
196 ufs_renesas_poll(hba, 0xd4, BIT(8) | BIT(6) | BIT(0), BIT(8) | BIT(6) | BIT(0)); in ufs_renesas_init_step4_to_6()
209 ufs_renesas_poll(hba, 0xd4, BIT(27), BIT(27)); in ufs_renesas_init_disable_timer()
211 ufs_renesas_poll(hba, 0xd4, BIT(0), BIT(0)); in ufs_renesas_init_disable_timer()
254 ufs_renesas_indirect_write(hba, 7, 0x5d, 0x0014); in ufs_renesas_r8a779f0_es10_pre_init()
255 ufs_renesas_indirect_write(hba, 7, 0x5e, 0x0014); in ufs_renesas_r8a779f0_es10_pre_init()
256 ufs_renesas_indirect_write(hba, 7, 0x0d, 0x0003); in ufs_renesas_r8a779f0_es10_pre_init()
257 ufs_renesas_indirect_write(hba, 7, 0x0e, 0x0007); in ufs_renesas_r8a779f0_es10_pre_init()
258 ufs_renesas_indirect_write(hba, 7, 0x5f, 0x0003); in ufs_renesas_r8a779f0_es10_pre_init()
259 ufs_renesas_indirect_write(hba, 7, 0x60, 0x0003); in ufs_renesas_r8a779f0_es10_pre_init()
260 ufs_renesas_indirect_write(hba, 7, 0x5b, 0x00a6); in ufs_renesas_r8a779f0_es10_pre_init()
261 ufs_renesas_indirect_write(hba, 7, 0x5c, 0x0003); in ufs_renesas_r8a779f0_es10_pre_init()
263 ufs_renesas_indirect_poll(hba, 7, 0x3c, 0, BIT(7)); in ufs_renesas_r8a779f0_es10_pre_init()
264 ufs_renesas_indirect_poll(hba, 7, 0x4c, 0, BIT(4)); in ufs_renesas_r8a779f0_es10_pre_init()
278 ufs_renesas_indirect_write(hba, 7, 0x0d, 0x0002); in ufs_renesas_r8a779f0_es10_pre_init()
279 ufs_renesas_indirect_write(hba, 7, 0x0e, 0x0007); in ufs_renesas_r8a779f0_es10_pre_init()
283 ufs_renesas_set_phy(hba, 0x401c, BIT(2)); in ufs_renesas_r8a779f0_es10_pre_init()
289 ufs_renesas_indirect_write(hba, 7, 0x70, 0x0016); in ufs_renesas_r8a779f0_es10_pre_init()
290 ufs_renesas_indirect_write(hba, 7, 0x71, 0x0016); in ufs_renesas_r8a779f0_es10_pre_init()
291 ufs_renesas_indirect_write(hba, 7, 0x72, 0x0014); in ufs_renesas_r8a779f0_es10_pre_init()
292 ufs_renesas_indirect_write(hba, 7, 0x73, 0x0014); in ufs_renesas_r8a779f0_es10_pre_init()
293 ufs_renesas_indirect_write(hba, 7, 0x74, 0x0000); in ufs_renesas_r8a779f0_es10_pre_init()
294 ufs_renesas_indirect_write(hba, 7, 0x75, 0x0000); in ufs_renesas_r8a779f0_es10_pre_init()
295 ufs_renesas_indirect_write(hba, 7, 0x76, 0x0010); in ufs_renesas_r8a779f0_es10_pre_init()
296 ufs_renesas_indirect_write(hba, 7, 0x77, 0x0010); in ufs_renesas_r8a779f0_es10_pre_init()
297 ufs_renesas_indirect_write(hba, 7, 0x78, 0x00ff); in ufs_renesas_r8a779f0_es10_pre_init()
298 ufs_renesas_indirect_write(hba, 7, 0x79, 0x0000); in ufs_renesas_r8a779f0_es10_pre_init()
300 ufs_renesas_indirect_write(hba, 7, 0x19, 0x0007); in ufs_renesas_r8a779f0_es10_pre_init()
301 ufs_renesas_indirect_write(hba, 7, 0x1a, 0x0007); in ufs_renesas_r8a779f0_es10_pre_init()
302 ufs_renesas_indirect_write(hba, 7, 0x24, 0x000c); in ufs_renesas_r8a779f0_es10_pre_init()
303 ufs_renesas_indirect_write(hba, 7, 0x25, 0x000c); in ufs_renesas_r8a779f0_es10_pre_init()
304 ufs_renesas_indirect_write(hba, 7, 0x62, 0x0000); in ufs_renesas_r8a779f0_es10_pre_init()
305 ufs_renesas_indirect_write(hba, 7, 0x63, 0x0000); in ufs_renesas_r8a779f0_es10_pre_init()
306 ufs_renesas_indirect_write(hba, 7, 0x5d, 0x0014); in ufs_renesas_r8a779f0_es10_pre_init()
307 ufs_renesas_indirect_write(hba, 7, 0x5e, 0x0017); in ufs_renesas_r8a779f0_es10_pre_init()
308 ufs_renesas_indirect_write(hba, 7, 0x5d, 0x0004); in ufs_renesas_r8a779f0_es10_pre_init()
309 ufs_renesas_indirect_write(hba, 7, 0x5e, 0x0017); in ufs_renesas_r8a779f0_es10_pre_init()
310 ufs_renesas_indirect_poll(hba, 7, 0x55, 0, BIT(6)); in ufs_renesas_r8a779f0_es10_pre_init()
311 ufs_renesas_indirect_poll(hba, 7, 0x41, 0, BIT(7)); in ufs_renesas_r8a779f0_es10_pre_init()
327 ufs_renesas_reset_indirect_write(hba, 7, 0x20, val_2x); in ufs_renesas_r8a779f0_init_step3_add()
328 ufs_renesas_reset_indirect_write(hba, 7, 0x4a, val_4x); in ufs_renesas_r8a779f0_init_step3_add()
329 ufs_renesas_reset_indirect_write(hba, 7, 0x35, val_3x); in ufs_renesas_r8a779f0_init_step3_add()
331 ufs_renesas_reset_indirect_write(hba, 7, 0x21, val_2x); in ufs_renesas_r8a779f0_init_step3_add()
332 ufs_renesas_reset_indirect_write(hba, 7, 0x4b, val_4x); in ufs_renesas_r8a779f0_init_step3_add()
333 ufs_renesas_reset_indirect_write(hba, 7, 0x36, val_3x); in ufs_renesas_r8a779f0_init_step3_add()
348 ufs_renesas_reset_indirect_write(hba, 7, 0x5f, 0x0063); in ufs_renesas_r8a779f0_pre_init()
350 ufs_renesas_reset_indirect_write(hba, 7, 0x60, 0x0003); in ufs_renesas_r8a779f0_pre_init()
352 ufs_renesas_reset_indirect_write(hba, 7, 0x5b, 0x00a6); in ufs_renesas_r8a779f0_pre_init()
354 ufs_renesas_reset_indirect_write(hba, 7, 0x5c, 0x0003); in ufs_renesas_r8a779f0_pre_init()
363 ufs_renesas_indirect_write(hba, 7, 0x5d, 0x0014); in ufs_renesas_r8a779f0_pre_init()
364 ufs_renesas_indirect_write(hba, 7, 0x5e, 0x0014); in ufs_renesas_r8a779f0_pre_init()
365 ufs_renesas_indirect_write(hba, 7, 0x0d, 0x0007); in ufs_renesas_r8a779f0_pre_init()
366 ufs_renesas_indirect_write(hba, 7, 0x0e, 0x0007); in ufs_renesas_r8a779f0_pre_init()
368 ufs_renesas_indirect_poll(hba, 7, 0x3c, 0, BIT(7)); in ufs_renesas_r8a779f0_pre_init()
369 ufs_renesas_indirect_poll(hba, 7, 0x4c, 0, BIT(4)); in ufs_renesas_r8a779f0_pre_init()
376 ufs_renesas_indirect_write(hba, 1, 0x4d, priv->calib[2]); in ufs_renesas_r8a779f0_pre_init()
377 ufs_renesas_indirect_write(hba, 1, 0x4e, priv->calib[3]); in ufs_renesas_r8a779f0_pre_init()
380 ufs_renesas_write_phy(hba, 0x0028, priv->calib[3]); in ufs_renesas_r8a779f0_pre_init()
381 ufs_renesas_write_phy(hba, 0x4014, priv->calib[3]); in ufs_renesas_r8a779f0_pre_init()
383 ufs_renesas_set_phy(hba, 0x401c, BIT(2)); in ufs_renesas_r8a779f0_pre_init()
385 ufs_renesas_write_phy(hba, 0x4000, priv->calib[6]); in ufs_renesas_r8a779f0_pre_init()
386 ufs_renesas_write_phy(hba, 0x4001, priv->calib[7]); in ufs_renesas_r8a779f0_pre_init()
392 ufs_renesas_indirect_write(hba, 7, 0x79, 0x0000); in ufs_renesas_r8a779f0_pre_init()
393 ufs_renesas_indirect_write(hba, 7, 0x24, 0x000c); in ufs_renesas_r8a779f0_pre_init()
394 ufs_renesas_indirect_write(hba, 7, 0x25, 0x000c); in ufs_renesas_r8a779f0_pre_init()
395 ufs_renesas_indirect_write(hba, 7, 0x62, 0x00c0); in ufs_renesas_r8a779f0_pre_init()
396 ufs_renesas_indirect_write(hba, 7, 0x63, 0x0001); in ufs_renesas_r8a779f0_pre_init()
398 for (i = 0; i < priv->fw->size / 2; i++) { in ufs_renesas_r8a779f0_pre_init()
399 data = (priv->fw->data[i * 2 + 1] << 8) | priv->fw->data[i * 2]; in ufs_renesas_r8a779f0_pre_init()
403 ufs_renesas_indirect_write(hba, 7, 0x0d, 0x0002); in ufs_renesas_r8a779f0_pre_init()
404 ufs_renesas_indirect_write(hba, 7, 0x0e, 0x0007); in ufs_renesas_r8a779f0_pre_init()
406 ufs_renesas_indirect_write(hba, 7, 0x5d, 0x0014); in ufs_renesas_r8a779f0_pre_init()
407 ufs_renesas_indirect_write(hba, 7, 0x5e, 0x0017); in ufs_renesas_r8a779f0_pre_init()
408 ufs_renesas_indirect_write(hba, 7, 0x5d, 0x0004); in ufs_renesas_r8a779f0_pre_init()
409 ufs_renesas_indirect_write(hba, 7, 0x5e, 0x0017); in ufs_renesas_r8a779f0_pre_init()
410 ufs_renesas_indirect_poll(hba, 7, 0x55, 0, BIT(6)); in ufs_renesas_r8a779f0_pre_init()
411 ufs_renesas_indirect_poll(hba, 7, 0x41, 0, BIT(7)); in ufs_renesas_r8a779f0_pre_init()
421 if (priv->initialized) in ufs_renesas_hce_enable_notify()
425 priv->pre_init(hba); in ufs_renesas_hce_enable_notify()
427 priv->initialized = true; in ufs_renesas_hce_enable_notify()
436 pm_runtime_get_sync(hba->dev); in ufs_renesas_setup_clocks()
438 pm_runtime_put(hba->dev); in ufs_renesas_setup_clocks()
452 struct device *dev = hba->dev; in ufs_renesas_init()
460 return -ENOMEM; in ufs_renesas_init()
463 hba->quirks |= UFSHCD_QUIRK_HIBERN_FASTAUTO; in ufs_renesas_init()
469 ret = request_firmware(&priv->fw, UFS_RENESAS_FIRMWARE_NAME, dev); in ufs_renesas_init()
492 memcpy(priv->calib, data, EFUSE_CALIB_SIZE); in ufs_renesas_init()
493 priv->pre_init = ufs_renesas_r8a779f0_pre_init; in ufs_renesas_init()
498 priv->pre_init = ufs_renesas_r8a779f0_es10_pre_init; in ufs_renesas_init()
512 release_firmware(priv->fw); in ufs_renesas_exit()
517 return dma_set_mask_and_coherent(hba->dev, DMA_BIT_MASK(32)); in ufs_renesas_set_dma_mask()
531 { .compatible = "renesas,r8a779f0-ufs" },
550 .name = "ufshcd-renesas",