Lines Matching +full:2 +full:x32 +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()
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()
266 ufs_renesas_indirect_write(hba, 1, 0x32, 0x0080); in ufs_renesas_r8a779f0_es10_pre_init()
269 ufs_renesas_indirect_write(hba, 0, 0x32, 0x0087); in ufs_renesas_r8a779f0_es10_pre_init()
283 ufs_renesas_set_phy(hba, 0x401c, BIT(2)); 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()
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()
371 ufs_renesas_indirect_write(hba, 1, 0x32, 0x0080); in ufs_renesas_r8a779f0_pre_init()
374 ufs_renesas_indirect_write(hba, 1, 0x32, 0x0087); 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()
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()
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",