Lines Matching +full:0 +full:- +full:7
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"
39 ufshcd_dump_regs(hba, 0xc0, 0x40, "regs: 0xc0 + "); in ufs_renesas_dbg_register_dump()
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()
67 ufs_renesas_write(hba, 0xd0, data_d0); in ufs_renesas_write_d0_d4()
68 ufs_renesas_write(hba, 0xd4, data_d4); in ufs_renesas_write_d0_d4()
74 ufs_renesas_write_d0_d4(hba, 0x0000080c, 0x00000100); in ufs_renesas_write_800_80c_poll()
75 ufs_renesas_write_d0_d4(hba, 0x00000800, (data_800 << 16) | BIT(8) | addr); in ufs_renesas_write_800_80c_poll()
76 ufs_renesas_write(hba, 0xd0, 0x0000080c); in ufs_renesas_write_800_80c_poll()
77 ufs_renesas_poll(hba, 0xd4, BIT(8), BIT(8)); in ufs_renesas_write_800_80c_poll()
82 ufs_renesas_write_d0_d4(hba, 0x0000080c, 0x00000100); in ufs_renesas_write_804_80c_poll()
83 ufs_renesas_write_d0_d4(hba, 0x00000804, (data_804 << 16) | BIT(8) | addr); in ufs_renesas_write_804_80c_poll()
84 ufs_renesas_write(hba, 0xd0, 0x0000080c); in ufs_renesas_write_804_80c_poll()
85 ufs_renesas_poll(hba, 0xd4, BIT(8), BIT(8)); in ufs_renesas_write_804_80c_poll()
90 ufs_renesas_write_d0_d4(hba, 0x0000082c, 0x0f000000); in ufs_renesas_write_828_82c_poll()
91 ufs_renesas_write_d0_d4(hba, 0x00000828, data_828); in ufs_renesas_write_828_82c_poll()
92 ufs_renesas_write(hba, 0xd0, 0x0000082c); in ufs_renesas_write_828_82c_poll()
93 ufs_renesas_poll(hba, 0xd4, data_828, data_828); in ufs_renesas_write_828_82c_poll()
98 ufs_renesas_write(hba, 0xf0, 1); in ufs_renesas_write_phy()
99 ufs_renesas_write_800_80c_poll(hba, 0x16, addr16 & 0xff); in ufs_renesas_write_phy()
100 ufs_renesas_write_800_80c_poll(hba, 0x17, (addr16 >> 8) & 0xff); in ufs_renesas_write_phy()
101 ufs_renesas_write_800_80c_poll(hba, 0x18, data16 & 0xff); in ufs_renesas_write_phy()
102 ufs_renesas_write_800_80c_poll(hba, 0x19, (data16 >> 8) & 0xff); in ufs_renesas_write_phy()
103 ufs_renesas_write_800_80c_poll(hba, 0x1c, 0x01); in ufs_renesas_write_phy()
104 ufs_renesas_write_828_82c_poll(hba, 0x0f000000); in ufs_renesas_write_phy()
105 ufs_renesas_write(hba, 0xf0, 0); in ufs_renesas_write_phy()
112 ufs_renesas_write(hba, 0xf0, 1); in ufs_renesas_set_phy()
113 ufs_renesas_write_800_80c_poll(hba, 0x16, addr16 & 0xff); in ufs_renesas_set_phy()
114 ufs_renesas_write_800_80c_poll(hba, 0x17, (addr16 >> 8) & 0xff); in ufs_renesas_set_phy()
115 ufs_renesas_write_800_80c_poll(hba, 0x1c, 0x01); in ufs_renesas_set_phy()
116 ufs_renesas_write_828_82c_poll(hba, 0x0f000000); in ufs_renesas_set_phy()
117 ufs_renesas_write_804_80c_poll(hba, 0x1a, 0); in ufs_renesas_set_phy()
118 ufs_renesas_write(hba, 0xd0, 0x00000808); in ufs_renesas_set_phy()
119 low = ufs_renesas_read(hba, 0xd4) & 0xff; in ufs_renesas_set_phy()
120 ufs_renesas_write_804_80c_poll(hba, 0x1b, 0); in ufs_renesas_set_phy()
121 ufs_renesas_write(hba, 0xd0, 0x00000808); in ufs_renesas_set_phy()
122 high = ufs_renesas_read(hba, 0xd4) & 0xff; in ufs_renesas_set_phy()
123 ufs_renesas_write_828_82c_poll(hba, 0x0f000000); in ufs_renesas_set_phy()
124 ufs_renesas_write(hba, 0xf0, 0); in ufs_renesas_set_phy()
133 ufs_renesas_write(hba, 0xf0, gpio); in ufs_renesas_reset_indirect_write()
139 ufs_renesas_write_d0_d4(hba, 0x0000082c, 0x0f000000); in ufs_renesas_reset_indirect_update()
140 ufs_renesas_write_d0_d4(hba, 0x00000828, 0x0f000000); in ufs_renesas_reset_indirect_update()
141 ufs_renesas_write(hba, 0xd0, 0x0000082c); in ufs_renesas_reset_indirect_update()
142 ufs_renesas_poll(hba, 0xd4, BIT(27) | BIT(26) | BIT(24), BIT(27) | BIT(26) | BIT(24)); in ufs_renesas_reset_indirect_update()
143 ufs_renesas_write(hba, 0xf0, 0); in ufs_renesas_reset_indirect_update()
149 ufs_renesas_write(hba, 0xf0, gpio); in ufs_renesas_indirect_write()
151 ufs_renesas_write_828_82c_poll(hba, 0x0f000000); in ufs_renesas_indirect_write()
152 ufs_renesas_write(hba, 0xf0, 0); in ufs_renesas_indirect_write()
158 ufs_renesas_write(hba, 0xf0, gpio); in ufs_renesas_indirect_poll()
159 ufs_renesas_write_800_80c_poll(hba, addr, 0); in ufs_renesas_indirect_poll()
160 ufs_renesas_write(hba, 0xd0, 0x00000808); in ufs_renesas_indirect_poll()
161 ufs_renesas_poll(hba, 0xd4, expected, mask); in ufs_renesas_indirect_poll()
162 ufs_renesas_write(hba, 0xf0, 0); in ufs_renesas_indirect_poll()
167 ufs_renesas_write(hba, 0xc0, 0x49425308); in ufs_renesas_init_step1_to_3()
168 ufs_renesas_write_d0_d4(hba, 0x00000104, 0x00000002); in ufs_renesas_init_step1_to_3()
170 ufs_renesas_write_d0_d4(hba, 0x00000108, 0x00000002); in ufs_renesas_init_step1_to_3()
172 ufs_renesas_write_d0_d4(hba, 0x00000828, 0x00000200); in ufs_renesas_init_step1_to_3()
174 ufs_renesas_write_d0_d4(hba, 0x00000828, 0x00000000); in ufs_renesas_init_step1_to_3()
175 ufs_renesas_write_d0_d4(hba, 0x00000104, 0x00000001); in ufs_renesas_init_step1_to_3()
177 ufs_renesas_write_d0_d4(hba, 0x00000108, 0x00000001); in ufs_renesas_init_step1_to_3()
178 ufs_renesas_write_d0_d4(hba, 0x00000940, 0x00000001); in ufs_renesas_init_step1_to_3()
180 ufs_renesas_write_d0_d4(hba, 0x00000940, 0x00000000); in ufs_renesas_init_step1_to_3()
182 ufs_renesas_write(hba, 0xc0, 0x49425308); in ufs_renesas_init_step1_to_3()
183 ufs_renesas_write(hba, 0xc0, 0x41584901); in ufs_renesas_init_step1_to_3()
188 ufs_renesas_write_d0_d4(hba, 0x0000080c, 0x00000100); in ufs_renesas_init_step4_to_6()
189 ufs_renesas_write_d0_d4(hba, 0x00000804, 0x00000000); in ufs_renesas_init_step4_to_6()
190 ufs_renesas_write(hba, 0xd0, 0x0000080c); in ufs_renesas_init_step4_to_6()
191 ufs_renesas_poll(hba, 0xd4, BIT(8), BIT(8)); in ufs_renesas_init_step4_to_6()
193 ufs_renesas_write(hba, REG_CONTROLLER_ENABLE, 0x00000001); in ufs_renesas_init_step4_to_6()
195 ufs_renesas_write(hba, 0xd0, 0x00000804); 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()
203 ufs_renesas_write(hba, 0xd0, 0x00000d00); in ufs_renesas_init_disable_timer()
204 timer_val = ufs_renesas_read(hba, 0xd4) & 0x0000ffff; in ufs_renesas_init_disable_timer()
205 ufs_renesas_write(hba, 0xd4, 0x00000000); in ufs_renesas_init_disable_timer()
206 ufs_renesas_write_d0_d4(hba, 0x0000082c, 0x0f000000); in ufs_renesas_init_disable_timer()
207 ufs_renesas_write_d0_d4(hba, 0x00000828, 0x08000000); in ufs_renesas_init_disable_timer()
208 ufs_renesas_write(hba, 0xd0, 0x0000082c); in ufs_renesas_init_disable_timer()
209 ufs_renesas_poll(hba, 0xd4, BIT(27), BIT(27)); in ufs_renesas_init_disable_timer()
210 ufs_renesas_write(hba, 0xd0, 0x00000d2c); in ufs_renesas_init_disable_timer()
211 ufs_renesas_poll(hba, 0xd4, BIT(0), BIT(0)); in ufs_renesas_init_disable_timer()
218 ufs_renesas_write(hba, 0xf0, 0); in ufs_renesas_init_enable_timer()
219 ufs_renesas_write(hba, 0xd0, 0x00000d00); in ufs_renesas_init_enable_timer()
220 ufs_renesas_write(hba, 0xd4, timer_val); in ufs_renesas_init_enable_timer()
226 ufs_renesas_write_phy(hba, 0x10ae, 0x0001); in ufs_renesas_write_phy_10ad_10af()
227 ufs_renesas_write_phy(hba, 0x10ad, data_10ad); in ufs_renesas_write_phy_10ad_10af()
228 ufs_renesas_write_phy(hba, 0x10af, data_10af); in ufs_renesas_write_phy_10ad_10af()
229 ufs_renesas_write_phy(hba, 0x10b6, 0x0001); in ufs_renesas_write_phy_10ad_10af()
230 ufs_renesas_write_phy(hba, 0x10ae, 0x0000); in ufs_renesas_write_phy_10ad_10af()
235 ufs_renesas_write_phy_10ad_10af(hba, 0x0000, 0x0001); in ufs_renesas_init_compensation_and_slicers()
236 ufs_renesas_write_phy_10ad_10af(hba, 0x0000, 0x0002); in ufs_renesas_init_compensation_and_slicers()
237 ufs_renesas_write_phy_10ad_10af(hba, 0x0080, 0x0000); in ufs_renesas_init_compensation_and_slicers()
238 ufs_renesas_write_phy_10ad_10af(hba, 0x0080, 0x001a); in ufs_renesas_init_compensation_and_slicers()
253 ufs_renesas_indirect_write(hba, 1, 0x01, 0x001f); in ufs_renesas_r8a779f0_es10_pre_init()
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()
266 ufs_renesas_indirect_write(hba, 1, 0x32, 0x0080); in ufs_renesas_r8a779f0_es10_pre_init()
267 ufs_renesas_indirect_write(hba, 1, 0x1f, 0x0001); in ufs_renesas_r8a779f0_es10_pre_init()
268 ufs_renesas_indirect_write(hba, 0, 0x2c, 0x0001); in ufs_renesas_r8a779f0_es10_pre_init()
269 ufs_renesas_indirect_write(hba, 0, 0x32, 0x0087); in ufs_renesas_r8a779f0_es10_pre_init()
271 ufs_renesas_indirect_write(hba, 1, 0x4d, 0x0061); in ufs_renesas_r8a779f0_es10_pre_init()
272 ufs_renesas_indirect_write(hba, 4, 0x9b, 0x0009); in ufs_renesas_r8a779f0_es10_pre_init()
273 ufs_renesas_indirect_write(hba, 4, 0xa6, 0x0005); in ufs_renesas_r8a779f0_es10_pre_init()
274 ufs_renesas_indirect_write(hba, 4, 0xa5, 0x0058); in ufs_renesas_r8a779f0_es10_pre_init()
275 ufs_renesas_indirect_write(hba, 1, 0x39, 0x0027); in ufs_renesas_r8a779f0_es10_pre_init()
276 ufs_renesas_indirect_write(hba, 1, 0x47, 0x004c); 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()
281 ufs_renesas_write_phy(hba, 0x0028, 0x0061); in ufs_renesas_r8a779f0_es10_pre_init()
282 ufs_renesas_write_phy(hba, 0x4014, 0x0061); in ufs_renesas_r8a779f0_es10_pre_init()
283 ufs_renesas_set_phy(hba, 0x401c, BIT(2)); in ufs_renesas_r8a779f0_es10_pre_init()
284 ufs_renesas_write_phy(hba, 0x4000, 0x0000); in ufs_renesas_r8a779f0_es10_pre_init()
285 ufs_renesas_write_phy(hba, 0x4001, 0x0000); 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()
319 u32 val_2x = 0, val_3x = 0, val_4x = 0; in ufs_renesas_r8a779f0_init_step3_add()
322 val_2x = 0x0001; in ufs_renesas_r8a779f0_init_step3_add()
323 val_3x = 0x0003; in ufs_renesas_r8a779f0_init_step3_add()
324 val_4x = 0x0001; in ufs_renesas_r8a779f0_init_step3_add()
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()
362 ufs_renesas_indirect_write(hba, 1, 0x01, 0x001f); 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()
371 ufs_renesas_indirect_write(hba, 1, 0x32, 0x0080); in ufs_renesas_r8a779f0_pre_init()
372 ufs_renesas_indirect_write(hba, 1, 0x1f, 0x0001); in ufs_renesas_r8a779f0_pre_init()
373 ufs_renesas_indirect_write(hba, 1, 0x2c, 0x0001); 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()
378 ufs_renesas_indirect_write(hba, 1, 0x0d, 0x0006); in ufs_renesas_r8a779f0_pre_init()
379 ufs_renesas_indirect_write(hba, 1, 0x0e, 0x0007); 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()
388 ufs_renesas_indirect_write(hba, 1, 0x14, 0x0001); 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()
400 ufs_renesas_write_phy(hba, 0xc000 + i, data); 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()
422 return 0; 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()
429 return 0; 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()
440 return 0; 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()
497 dev_info(dev, "Using ES1.0 init code\n"); in ufs_renesas_init()
498 priv->pre_init = ufs_renesas_r8a779f0_es10_pre_init; in ufs_renesas_init()
505 return 0; 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",